一步一个脚印学习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编程的命名空间具有一样的目的,确定契约的类型范围,降低契约类型的冲突几率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值