zoukankan      html  css  js  c++  java
  • WCF 实体更改发布后,如何不影响调用方?

    应用场景:使用 WCF 有一个坏处,就是如果我们经常对 WCF 应用程序更新,有时候调用方也要进行 Update Service,但调用方往往会很多,那么这个工作就会很讨厌,比如 WCF Service 返回的实体类型更改了,这时候不更新调用方就会报错,怎么解决这个问题?

    原始 ProductDTO:

    namespace Sample.App.Application.DTO
    {
        [Serializable]
        [DataContract]
        public class ProductDTO
        {
            [DataMember]
            public int ID { get; set; }
            [DataMember]
            public string Name { get; set; }
            [DataMember]
            public string Size { get; set; }
        }
    }
    

    更改后的 ProductDTO:

    namespace Sample.App.Application.DTOs
    {
        [Serializable]
        [DataContract]
        public class ProductDTO
        {
            [DataMember]
            public int ID { get; set; }
            [DataMember]
            public string Name { get; set; }
            [DataMember]
            public string Size { get; set; }
            public string Remark { get; set; }
        }
    }
    

    两个更改:

    • 命名空间 Sample.App.Application.DTO 改为 Sample.App.Application.DTOs。
    • 增加 Remark,但是不想暴露给调用方。

    如果我们不更新调用方,这时候将获取不到 ProductDTO,但不会报错。

    解决方式:

    namespace Sample.App.Application.DTOs
    {
        [Serializable]
        [DataContract(Namespace = "http://schemas.datacontract.org/2004/07/Sample.App.Application.DTO")]
        public class ProductDTO
        {
            [DataMember]
            public int ID { get; set; }
            [DataMember]
            public string Name { get; set; }
            [DataMember]
            public string Size { get; set; }
            [IgnoreDataMember]
            public string Remark { get; set; }
        }
    }
    

    注:

    • DataContract - Namespace:自定义类型命名空间,和调用方保持一致。
    • IgnoreDataMember:忽略属性映射。
  • 相关阅读:
    馨梦ASP服务器|馨梦ASP服务器V2014.7官方版下载
    类和对象的关系
    eclipse找不到或无法加载主类
    注释的最佳位置
    java软件开发
    使用MySqlHelper类查询并显示数据
    使用System.Web.HttpUtility.UrlEncode提示HttpUtility不是Web成员
    VB.net打印指定文件-(目前是打印文件名)
    馨梦ASP服务器|馨梦ASP服务器V2017.7官方版下载
    VB.net将中文转为URLencode问题
  • 原文地址:https://www.cnblogs.com/xishuai/p/4786791.html
Copyright © 2011-2022 走看看