2012-04-27 8 views
0

返されるエンドポイントに応じて、クラスの異なるDataMembersを返すことはできますか?異なるエンドポイントから異なるデータメンバを返す

1つのエンドポイントからは、あるクラスの基本的なDataMembersだけを返すだけですが、別のエンドポイントからは、同じクラスのより詳細なメンバーを返したいと思います。

私は基本的なクラスを持つことができ、より詳細な情報を持った別のクラスを派生させ、これらを異なるエンドポイントから返すことができると考えましたが、これが達成できる別の方法があるかどうかも疑問でした。

+1

あなたは試したことを表示できますか? –

+0

サービスインターフェイスの例と送信したいオブジェクトを教えてください。 – Bronumski

答えて

0

あなたの提案は完全に合理的です。これらのクラスはとにかく(おそらく)DTOであり、ビジネスモデルとメッセージモデルを切り離すことがポイントです。 2つのメッセージモデルを持っている場合、一方を派生(または含む)しても問題ありません。

代替モデルはどのように見えますか?データメンバがどのサービスに属しているのかを示す複雑なアノテーションを持つ単一のタイプですか?これはすばやく扱いにくく、ビジネスオブジェクトがこのモデルにどのようにマッピングされるかを考慮していません(つまり、どのエンドポイントが呼び出されているかをマッピングする必要がありますか?それは非常に醜いです)。

は、だから:

public class EntityBase 
{ 
    // basic details here 
} 

public class EntityDetails: EntityBase 
{ 
    // more complex details initialised here 
} 

その後、あなたのエンドポイントは強くこれらに対して入力することができ、あなたは、マッピング・ロジックを共有することができ、そしてあなたが望むものを達成。