以下のソース コードに示されている動作を実現する方法を探しています。「常にメッセージ コントラクトを生成する」オプションを使用して WCF サービス プロキシを作成しました。すべての要求および応答メッセージ コントラクトは共通のインターフェイスを実装しており、同じ関数を使用してそれらを実行したいと考えています。クライアントプロキシを介してメッセージを送信する一般的な方法があるはずですが、どこにも見つかりません。どんな助けでも大歓迎です!
// I can do this
private IPagedResponse GetAllFoods()
{
NutrientDBClient client = new NutrientDBClient();
GetAllFoodsRequest request = new GetAllFoodsRequest();
GetAllFoodsResponse response = client.GetAllFoods(request);
return response;
}
// I'd like to do this
private IPagedResponse ExecutePagedRequest(IPagedRequest request)
{
NutrientDBClient client = new NutrientDBClient();
IPagedResponse response = (IPagedResponse)client.Execute(request);
return response;
}
現在、ExecutePagedRequest(IPagedRequest) メソッドを NutrientDBClient に追加し、IPagedRequest の具象型に基づいて正しいサービス操作を手動で実行しています。メッセージ コントラクトに IPagedRequest を簡単に実装でき、自動的に魔法のように機能するように、よりエレガントな方法を探しています。