一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约的名称与命名空间...

契约命名与别名
本文介绍了服务契约如何通过定义别名来减少冲突,并通过指定命名空间来明确契约的类型范围。详细解释了为什么需要为契约定义别名和命名空间。

契约的名称

在默认下契约公开的名称就是定义的接口名或者类名如下面的:IMyContract和MyClass

[ServiceContract]
 interface IMyContract
 {

 }
 [Service Contract]
 class MyClass
 {
 }

但是可以为契约定义别名,如下面定义后的别名是:MyServiceContract和MeServcieContract

举例如下:

[ServiceContract(Name="MyServiceContract")]
 interface IMyContract
 {

 }
 [Service Contract(Name="MeServiceContract")]
 class MyClass
 {
 }

为什么要为契约定义别名?

因为,客户端要调用服务,必须用到元数据(Metadata),而元数据(Metadata)中用别名描述服务,能降低耦合度。如果都用IMyContract作为服务的名称是不就冲突了。

举例如下:用Name属性

[ServiceContract(Name="MyServiceContractA")]
 interface IMyContract
 {

 }

[ServiceContract(Name="MyServiceContractB")]
 interface IMyContract
 {

 }

契约的命名空间

默认情况下契约的命名空间是http://tempuri.org,但是可以为契约定义命名空间。对外提供服务的命名空间通常使用公司的URL。

举例如下:用Namespace属性

[ServiceContract(Namespace="http://www.mycompany.com.cn/")]
 interface IMyContract
 {

 }

 为什么要为契约定义命名空间?

契约的命名空间和.NET编程的命名空间具有一样的目的,确定契约的类型范围,降低契约类型的冲突几率。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值