3

私は RESTFUL クライアント ライブラリを作成していますが、返されるオブジェクトの型の一部は、要求のパラメーターに依存します。

たとえば、クライアントには ExecuteCommand というメソッドがあり、次のような応答オブジェクトを返します。

public class MyResponse
{
   public MyResult Result{ get; set; }
   public MyResponseHeader ResponseHeader { get; set; }
}

MyResult クラスは次のとおりです。

public class MyResult
{
   public object[] DocumentList{ get; set; }
   public int NumRecords{ get; set; }
   public int Start{ get; set; }
}

私がやりたいのは、「ドキュメント タイプ」を ExecuteCommand メソッドに渡し、渡されたタイプの IDocument を持つ MyResult オブジェクトを含む MyResponse オブジェクトを返すようにすることです。

この趣旨の何か:
MyResponse response = MyClient.ExecuteCommand<MyDocument>(request);

この例では、MyDocument 型の DocumentList を持つ MyResult を返したいと考えています。

前もって感謝します。

4

1 に答える 1

5

クラスでジェネリックを使用できます。

public class MyResponse<T>
{
   public MyResult<T> Result{ get; set; }
   public MyResponseHeader ResponseHeader { get; set; }
}

public class MyResult<T>
{
   public T[] DocumentList{ get; set; }
   public int NumRecords{ get; set; }
   public int Start{ get; set; }
}

次に、独自のもの(この場合は) を使用してExecuteCommand作成することができます。var を使用すると、さらに簡単で読みやすくなります。MyResponseTMyDocument

var response = MyClient.ExecuteCommand<MyDocument>(request);
于 2012-05-03T15:33:10.680 に答える