如何为任意类型创建 Roslyn ITypeSymbol?
How to create a Roslyn ITypeSymbol for an arbitrary type?
我可以像这样使用 SyntaxGenerator 生成类型为 Int32 的参数...
var generator = SyntaxGenerator.GetGenerator(document);
var paramType = generator.TypeExpression(SpecialType.System_Int32);
var param = generator.ParameterDeclaration("MyParam", paramType);
我应该使用什么等效代码来创建 Dataset 类型的参数?
我想我需要创建一个 ITypeSymbol 来传递给 generator.TypeExpression,但是如何做到这一点?
如果您有权访问 Compilation
,您可以使用 GetTypeByMetadataName
, as explained in this blog post and :
var dataSetType = compilation.GetTypeByMetadataName("System.Data.DataSet");
var paramType = generator.TypeExpression(dataSetType);
var param = generator.ParameterDeclaration("MyParam", paramType);
我可以像这样使用 SyntaxGenerator 生成类型为 Int32 的参数...
var generator = SyntaxGenerator.GetGenerator(document);
var paramType = generator.TypeExpression(SpecialType.System_Int32);
var param = generator.ParameterDeclaration("MyParam", paramType);
我应该使用什么等效代码来创建 Dataset 类型的参数?
我想我需要创建一个 ITypeSymbol 来传递给 generator.TypeExpression,但是如何做到这一点?
如果您有权访问 Compilation
,您可以使用 GetTypeByMetadataName
, as explained in this blog post and
var dataSetType = compilation.GetTypeByMetadataName("System.Data.DataSet");
var paramType = generator.TypeExpression(dataSetType);
var param = generator.ParameterDeclaration("MyParam", paramType);