2011-12-16 12 views
1

WCFのデータコントラクトであるオブジェクトに拡張メソッドを公開することはできますか?ここでWCFの拡張メソッドを公開するdatacontract

は一例です:顧客のクラスで

[DataContract] 
public class Customer 
{ 
    [DataMember] 
    public int ID { get; set; } 

    [DataMember] 
    public string FirstName { get; set; } 

    [DataMember] 
    public Product CurrentProduct { get; set; } 

    public Customer DeepCopy() 
    { 
     //Do Something else. For example just return a new instance 
     return new Customer(); 
    }  
} 

[DataContract] 
public class Product 
{ 
    [DataMember] 
    public int ID; 

    [DataMember] 
    public int Name; 
} 

深いコピー方法があります。これをクライアントにどのように公開するのですか?

+0

あなたは探しているものについてより多くの情報を提供できますか?特定のタイプ、一般的なデータ契約、または何とかワイヤを渡って拡張メソッドを取得するための拡張メソッドを作成したいですか? – scmccart

+0

あなたが拡張したいものを表示するのはどうでしょうか。そして、おそらく答えは直列化された型を拡張しようとせずにそれを実装する方法でしょう。 –

+0

なぜそれが必要ですか?必要に応じて顧客を新しくしてもらうのはなぜですか?しかし、実際にはこれはWCFなので、サービスによって作成され、顧客に提供されるか、またはその逆です。なぜそれを行うには、DataContractが必要ですか? –

答えて

2

いいえ、メソッドではなく、WCF DataContractでのみプロパティを公開できます。

1

ほとんどの場合、「再利用タイプ」機能を使用することができます。残念なことに、あなたのケースでは、サービスによって実際に使用される型の入力または出力パラメータとしての再利用のみが可能です。拡張メソッドを保持するクラスは静的クラスであるため、入力パラメータまたは戻り値の型としては表示されません。

関連する問題