7
我尝试使用Roslyn将方法添加到类中。
我解析.cs文件并得到决定的类。无法使用Roslyn以编程方式将成员添加到类
SyntaxTree tree = SyntaxTree.ParseFile(Path);
CompilationUnitSyntax root = (CompilationUnitSyntax)tree.GetRoot();
MemberDeclarationSyntax firstMember = root.Members[0];
TypeDeclarationSyntax lClassDeclarationSyntax = (TypeDeclarationSyntax)NamespaceDeclaration.Members[1];
然后创建类型MemberDeclaration
MethodDeclarationSyntax lMethodDeclarationSyntax= Syntax.MethodDeclaration(
Syntax.List<AttributeListSyntax>(),
Syntax.TokenList(),
Syntax.IdentifierName("MemoryStream"),
null,
Syntax.Identifier("Serialize"),
null,
Syntax.ParameterList(),
Syntax.List<TypeParameterConstraintClauseSyntax>(),
Syntax.Block(lList));
其中lList
是方法的主体的一个实例。 然后我尝试这种情况下响应添加到类
lClassDeclarationSyntax.Members.Add(lMethodDeclarationSyntax);
,但没有。 我该怎么做?
而且它不会破坏文件的结构?例如,我在文件中有两个类,我只有一个......然后我需要创建一个新的树,给定第二个类,然后将树保存在一个文件中,确保删除旧的文件? – Imorian
或者我可以简单地更换树木吗? – Imorian
它不会中断文件。如果您想要更新类的文件_copy_,您可以使用root.ReplaceNode来获取您的更改。 –