我正在编写RESTFUL客户端库,返回对象类型的一部分取决于请求的参数.
例如,客户端有一个名为ExecuteCommand的方法,它返回一个响应对象,如下所示:
public class MyResponse
{
public MyResult Result{ get; set; }
public MyResponseHeader ResponseHeader { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是MyResult类:
public class MyResult
{
public object[] DocumentList{ get; set; }
public int NumRecords{ get; set; }
public int Start{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是将"文档类型"传递给ExecuteCommand方法,并让它返回MyResponse对象,其中MyResult对象的IDocument是传入的类型.
这样的效果:
MyResponse response = MyClient.ExecuteCommand<MyDocument>(request);
在这个例子中,我想要返回的是具有MyDocument类型的DocumentList的MyResult.
提前致谢.
您可以在类上使用泛型:
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; }
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用它自己ExecuteCommand创建你MyResponse的T(在这种情况下MyDocument),并使用var将使它更容易和更可读:
var response = MyClient.ExecuteCommand<MyDocument>(request);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |