【发布时间】:2021-09-02 22:09:55
【问题描述】:
我正在尝试使用反射获取方法的返回类型的属性。
我正在使用MethodInfo.ReturnType 获取方法的返回类型,这会产生我的Task<T> 类型,因为我的方法是async。在这种类型上使用GetProperties 会产生属于Task 的属性:Result、Exception、AsyncState。但是,我想获取底层类型 T 的属性。
带有签名的方法示例:
public async Task<MyReturnType> MyMethod()
var myMethodInfo = MyType.GetMethod("MyMethod");
var returnType = myMethodInfo.ReturnType; // Task<MyReturnType>
var myProperties = returnType.GetProperties(); // [Result, Exception, AsyncState]
如何获取Task中内部类型T的属性而不是Task的属性?
【问题讨论】:
-
这能回答你的问题吗? C# Get Generic Type Name
-
@Klamsi 不完全是,因为它似乎会得到 Task 而不是 T。不过,我现在已经回答了我自己的问题。
标签: c# .net reflection