好的简短背景.我正在尝试各种方法来测试API,并且我试图允许用户提供API调用的简单CSV文件,我的测试框架可以使用通用测试方法进行迭代.我无法将类型传递给我的通用API调用方法.请允许我演示.
鉴于我有一个具有以下基本结构的方法
public T GetData<T>(Uri uri, HttpStatusCode expectedStatusCode)
{
var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
myHttpWebRequest.Accept = "application/json";
var response = (HttpWebResponse)myHttpWebRequest.GetResponse();
if (response.StatusCode != expectedStatusCode)
Report.Log(ReportLevel.Failure, "ExpectedResponseCode:" + expectedStatusCode.ToString() + " ActualResponseCode:" + response.StatusCode.ToString());
string responseString = "";
using (var stream = response.GetResponseStream())
{
var reader = new StreamReader(stream, Encoding.UTF8);
responseString = reader.ReadToEnd();
}
return JsonConvert.DeserializeObject<T>(responseString);
}
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地将上述内容如下调用
Person person = _apiHelper.GetData<Person>(uri, HttpStatusCode.Ok);
Run Code Online (Sandbox Code Playgroud)
但是假设我现在有一个我已经获得的类型,如下所示
Type returnType = Type.GetType(typeString, true, true);
Run Code Online (Sandbox Code Playgroud)
为什么我不能按如下方式调用GetData方法
var result = _apiHelper.GetData<returnType>(uri, HttpStatusCode.Ok);
Run Code Online (Sandbox Code Playgroud)
Visual Studio简单地说它无法解决这个问题
c# ×1