小编rob*_*sen的帖子

为什么我不能将类型传递给泛型方法

好的简短背景.我正在尝试各种方法来测试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#

0
推荐指数
1
解决办法
90
查看次数

标签 统计

c# ×1