私はコードジェネレータを作成しています。私が持っている問題を単純化するために、複数の宣言修飾子を持つクラスをどのように生成できますか?Roslyn複数の宣言修飾子を持つクラスを作成する方法
クラスジェネレータは、単一の宣言モディファイ
this._syntaxGenerator = SyntaxGenerator.GetGenerator(workspace, LanguageNames.CSharp);
var classNode = this._syntaxGenerator.ClassDeclaration(classOptions.Name, null,
classOptions.InternalAccessModifier, DeclarationModifiers.Sealed)
.NormalizeWhitespace();
を追加するためのコンストラクタを持っている私はそれを行うことができますどのように複数の宣言修飾子と密封された部分クラスか何かを作りたいと言いますか?
既存の修飾子を使用し、 'WithIs ** 'を使って新しいものを作り直してみてください。これは 'var modifiers = DeclarationModifiers.Sealed.WithIsAbstract(true).WithIsStatic(true);のようになります。 'その後、あなたは 'SyntaxGenerator.ClassDeclaration'に渡す必要があります –
ああ、私は配列から渡すことができると思っていました。テキストから解析しているので、すべてを代わりにトークンリスト。あなたが答えとして投稿した場合、正しいとマークします。 –
'DeclarationModifiers'は演算子をオーバーライドします。これにより、修飾子を' Expression'を使ってテキストで合計することができます。しかし、私はそれがより明確になるとは確信していません。 –