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


     

  • 相关阅读:
    apache安装
    docker搭建redis主从
    docker安装
    sklearn工具-绪论
    数学基础-矩阵和线性代数
    数学基础-概率论与贝叶斯先验
    数学基础-数学分析
    数据科学包——Matplotlib
    数据科学包——pandas
    数据科学包——numpy
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2023303.html
Copyright © 2011-2022 走看看