WCFWebサービスから取得したエンティティを返す関数があります。このエンティティをどのように返す必要がありますか?元のオブジェクト(Webサービスから)を返すことはできないと思います。これは、関数の呼び出し元(他のアセンブリから)がこのWebサービスへのサービス参照を強制されることを意味するためです(クラスはで定義されているため)サービスリファレンス)と私はそれを避けたいと思います。また、インターフェイスを実装するためにWCFエンティティを変更できないため、インターフェイスも使用できないと思います。
一方、元のエンティティが持つすべてのプロパティを正確に返す必要があります。すべてのプロパティが存在する必要があり、値やプロパティの名前とタイプに変換/調整する必要はありません。
元のWCFクラスと同じプロパティを複製する新しいクラスを作成する方がよいでしょうか。どのように実装すればよいですか。元のオブジェクトからすべての値をコピーする新しいオブジェクトを作成する方がよいでしょう。
return new Foo() { Id = original.Id, Name = original.Name
、...など}
?
または、次のようなgetsetメソッドでラップします。
public int Id
{
get { return _original.Id; }
set { _original.Id = value; }
}
また、WCF参照の元のクラス名とのあいまいさを回避するために、新しいクラスに名前を付ける方法はありますか?