c#使用泛型方法,在运行时已知类型的异步方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#使用泛型方法,在运行时已知类型的异步方法相关的知识,希望对你有一定的参考价值。

我正在尝试做一个休息api调用,我想读入运行时已知的对象。例如,简化了代码。

object o = null;
if (True)  //condition irrelevant just to indicate selection control
    o = new List<Product>();
else
    o = new Product();

 HttpResponseMessage response = await client.GetAsync(path);
 o = await response.Content.ReadAsAsync<o.GetType()>();

o.GetType()不是正确的方法。我能做些什么可以在运行时为此确定正确的泛型类型?

答案
o = await response.Content.ReadAsAsync(o.GetType())

HttpContentExtensions.ReadAsAsync Method

以上是关于c#使用泛型方法,在运行时已知类型的异步方法的主要内容,如果未能解决你的问题,请参考以下文章

当类型已知时,类型“T”不能用作泛型类型中的类型参数或方法错误

使用泛型类型作为异步方法的返回类型

如果类型在运行时之前未知,您可以在 C# 中使用泛型方法吗?

在泛型方法中返回特定类型,具体取决于运行时没有反射或动态的枚举值

泛型的优点

可能返回 default(T) 的异步泛型方法的正确可空注释