【发布时间】:2019-02-13 10:37:00
【问题描述】:
例如我有以下类型:
public class MyClass<T>
{
public T Prop { get; }
}
或者说我有以下方法:
private static void Method<T>()
{
//how I can get a real type of <T>
}
如何使用 roslyn 获得运行时类型的泛型类?我的意思是<T>的真实类型
static void Main(string[] args)
{
// here I need to get int
var m = new MyClass<int>();
// here I need to get object
var m1 = new MyClass<object>();
}
【问题讨论】:
-
@Alexander 我相信 OP 是通过 Rosyln 询问的,而不是在运行时询问
-
如果我通过roslynquoter 运行它,它会显示为
WithTypeArgumentList(i.stack.imgur.com/S4CUf.png) - 您是否在节点下寻找TypeArgumentList或类似名称?到目前为止,您在 roslyn 代码方面有什么? -
@MarcGravell 标识符(“T”)
-
@isxaker 你在看这个方法吗?还是在呼叫站点? (呼叫站点=
Main);仅在调用站点才定义 -
@MarcGravell 是的,你是对的。它让我
Token(SyntaxKind.ObjectKeyword)
标签: c# .net roslyn roslyn-code-analysis