如何为尚未生成的类型生成Roslyn TypeExpression?

时间:2017-11-03 07:45:11

标签: code-generation roslyn

我这里有鸡/蛋问题。我正在使用SyntaxGenerator来生成一些类。其中一些类将具有字段和属性,其类型是在其他类中生成的类型。所以我的问题是如何在一个类中声明一个字段,该类具有在另一个尚未生成的生成类中定义的类型?我是否必须先生成并编译当前生成的类所依赖的所有类?

false

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用SyntaxFactory生成您喜欢的任何类型名称,无论类型是否存在。

using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Simplification;

var name = SyntaxFactory
    .ParseTypeName("My.Generated.Type")
    .WithAdditionalAnnotations(Simplifier.Annotation);

或者,对于简单名称,您可以使用SyntaxFactory.IdentifierName作为通用名称,您可以使用SyntaxFactory.GenericName。存在等效的API以生成Visual Basic。