【发布时间】:2017-12-22 23:05:47
【问题描述】:
有什么方法可以使用 roslyn 将成员添加到类中?我要补充:
public int number {get;set;}
更新 我使用了这段代码:
PropertyDeclarationSyntax o =
SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName("public
System.Windows.Forms.Timer"), "Ticker { get; set; }");
var newRoot = root.ReplaceNode(oldMethod, oldMethod.AddMembers(o));
newRoot = Formatter.Format(newRoot, new AdhocWorkspace());
File.WriteAllText(file, newRoot.ToFullString());
但是结果是这样的:
public class ClassChild
{
public int n;
private int n2;
public void method1()
{
string c = "";
Console.WriteLine();
}
public System.Windows.Forms.TimerTicker { get; set; }
}
}
我想内联 public System.Windows.Forms.TimerTicker { get;放; } 与 n 和 n2。我该怎么做?
【问题讨论】:
-
你能扩展你想要实现的目标吗?创建用于添加值的分析器\修复器或独立实用程序(用于构建过程,for.ex.)?
-
我想修复一个添加新字段的类。在过去,我成功地向方法添加了一条新语句: /MethodDeclarationSyntax updateMethod = oldMethod.AddBodyStatements(ex); //var updatedRoot = root.ReplaceNode(oldMethod, updateMethod).NormalizeWhitespace();我想做同样的事情
-
你能帮帮我吗?
-
是的,我做了,但它们不起作用
标签: c# roslyn roslyn-code-analysis