假设这个简单的场景:我的客户有一个已经在工作的 .net 应用程序,他/她想通过 WCF 公开一些功能。所以他给了我一个程序集,其中包含一个公开了 followig 方法的公共类。
OrderDetail GetOrderDetail (int orderId) // Suppose OrderDetail has {ProductId, Quantity, Amount)
现在,我希望 OrderDetail (Amount) 的某些成员不被序列化。根据http://msdn.microsoft.com/en-us/library/aa738737.aspx,执行此操作的方法是通过 [DataContract] 和 [DataMember]/[IgnoreDataMember] 属性。但是,这不是我的选择,因为我无法修改客户端的源代码。因此,我正在寻找一种方法来指定要在类型定义之外序列化的成员。应该是这样的:
[OperationContract]
[IgnoreMember(typeof(OrderDetail), "Amount" )]
OrderDetail QueryOrder(int orderId){
return OrderDetail.GetOrderDetail(orderId)
}
有什么办法吗?谢谢,伯纳贝