文章出處
文章列表
應用場景:使用 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:忽略屬性映射。
文章列表
全站熱搜