您的位置:首页 > 其它

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

2011-04-21 16:01 786 查看
契约的名称

在默认下契约公开的名称就是定义的接口名或者类名如下面的: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编程的命名空间具有一样的目的,确定契约的类型范围,降低契约类型的冲突几率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐