如何获取属性/字段的数据类型? 我能够做到这一点的唯一方法是搜索存储该类的文档的语法树。这有点慢,而且还有继承问题(需要搜索其他文件,而不是另一个文件,等等)。 我的解决方案有一个局限性:在具有多个项目的解决方案中,需要加载所有项目!
是否可以执行以下操作:
Type mType = Type.GetType("MyNamespace.SampleClass");
答案 0 :(得分:0)
您正在寻找Compilation.GetTypeByMetadataName
。
CodeFixContext context = ...
SemanticModel model = await context.Document.GetSemanticModelAsync();
Compilation compilation = model.Compilation;
INamedTypeSymbol symbol = compilation.GetTypeByMetadataName("MyNamespace.SampleClass");
您无法从符号中获得System.Type
,它是一种反射类型has nothing to do with Roslyn。您必须先通过INamedTypeSymbol
来解决。