DDi*_*ita 5 wcf serialization .net-3.5
我有两个对象,一个在我们的企业级别,另一个在我们的服务级别.服务对象继承自企业.这是一个简单的例子:
[DataContract]
public class EnterpriseObject{
[DataMember]
int ID{get; set;}
string InternalUse{get; set;}
}
[DataContract]
public class ServiceObject: EnterpriseBaseObject{
[DataMember]
string Address{get; set;}
}
Run Code Online (Sandbox Code Playgroud)
是否有可能只在序列化中公开ServiceObject(具有EnterpriseObject的继承属性)?我不希望客户端看到列为选项的企业对象?正如您在示例中所看到的,未为InternalUser属性设置DataMember属性.这是唯一的方法吗?谢谢
你通过添加一个[KnownType(typeof(ServiceObject))]来处理继承EnterpriseBaseObject- 但是,EnterpriseBaseObject它仍然是合同的一部分,它的存在将是公开的.但只有标记的成员[DataMember]才会发布.
一个选项(删除继承)是为了序列化目的而有一个单独的DTO,并且在DTO版本和实际版本之间进行转换 - 但这会产生额外的工作.
| 归档时间: |
|
| 查看次数: |
2934 次 |
| 最近记录: |