• WCF揭秘——共享数据契约


    当客户端引用WCF服务时,必须为服务定义一个唯一的命名空间。在默认情况下,这个服务中所用到的类会被导入到这个命名空间内。这样,在不同的服务内引用同一个数据契约时就会遇到一个问题:在客户端,同一个数据契约被导入到不同的命名空间中,无法实现转换。

    在以下例子中,PersonService与ContractService同时包括对Person数据契约的引用,但通过PersonService获取到的Person对象,无法作为ContractService中的参数,因为在客户端,它们被引用到不同的命名空间之中,被视为不同的两个类。

       1:      [ServiceContract]
       2:      public interface IPersonService
       3:      {
       4:          [OperationContract]
       5:          Person GetPerson();
       6:      }
       7:   
       8:      public class PersonService : IPersonService
       9:      {
      10:          public Person GetPerson()
      11:          {
      12:              Person person = new Person();
      13:              person.ID = 0;
      14:              person.Name = "Leslie";
      15:              person.Age = 34;
      16:              return person;
      17:          }
      18:      }
      19:   
      20:      [ServiceContract]
      21:      public interface IContractService
      22:      {
      23:          [OperationContract]
      24:          Contract GetContractByPerson(Person person);
      25:      }
      26:   
      27:      public class ContractService : IContractService
      28:      {
      29:          public Contract GetContractByPerson(Person person)
      30:          {
      31:              Contract contract=ContractManager.GetContractByPerson(person);
      32:              .....
      33:              return contract;
      34:          }
      35:      }
      36:   

    从Visual Studio 2008开始,系统为客户提供了“共享数据契约”这一功能。首先把需要共享的数据契约包含在一个程序集中,生成一个Model.dll文件。在客户端引用这一程序集,在添加服务引用时,选择"高级"—>"重新使用引用的程序集中的类型(R)"—>"重新使用所引用的指定程序集中的类型(S)",然后选择Model。这样,在客户端就会同时使用Model.dll中的Person对象。

    QQ截图20110723213922

    相关文章

    简单的WCF开发实例

    使用AJAX+WCF进行页面开发

    共享数据契约

    可靠性会话功能

    自定义绑定

    对 .NET  开发有兴趣的朋友欢迎加入QQ群:162338858 共同探讨 !

    cnblogs博客园:http://www.cnblogs.com/leslies2/
    csdn博客:http://blog.csdn.net/leslies2
    原创作品,转载时请注明作者及出处



  • 相关阅读:
    C#画K线图代码
    SQL查询效率:100w数据查询只需要1秒钟
    全程图解 手把手教你做RAID磁盘阵列
    炒股高手实战技巧
    数据库主键设计之思考
    如何做磁盘阵列和磁盘镜象
    股海心法—浓缩股市精华
    如何做磁盘阵列
    SQL Server 2005实现负载均衡的详细介绍!
    K线六种形态
  • 原文地址:https://www.cnblogs.com/leslies2/p/2115091.html
Copyright © 2020-2023  润新知