Roslyn CodeFix提供程序(VS2015):如何获取类属性/字段类型

时间:2018-07-24 11:07:32

标签: types properties roslyn codefixprovider

如何获取属性/字段的数据类型? 我能够做到这一点的唯一方法是搜索存储该类的文档的语法树。这有点慢,而且还有继承问题(需要搜索其他文件,而不是另一个文件,等等)。 我的解决方案有一个局限性:在具有多个项目的解决方案中,需要加载所有项目!

是否可以执行以下操作:

Type mType = Type.GetType("MyNamespace.SampleClass");

1 个答案:

答案 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来解决。