次の単純なシナリオを想定してください。私のクライアントは既に動作している .net アプリケーションを持っており、WCF を介していくつかの機能を公開したいと考えています。それで彼は、次のメソッドを公開する public クラスを含むアセンブリを私にくれました。
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)
}
これに何か方法はありますか?ありがとう、ベルナベ