是否有任何工具可以将所有字段转换为一组.cs文件中的属性?

时间:2016-05-10 14:44:05

标签: c# asp.net .net roslyn

是否有将字段转换为属性的工具?

我的项目中有很多字段,需要很长时间才能将所有字段手动转换为属性。

3 个答案:

答案 0 :(得分:1)

您可以使用Visual Studio代码段为您生成代码。

只需输入 prop 并按TAB键, 它会为你创造骨架。您只需提供该属性的名称和类型即可。这么简单。

答案 1 :(得分:0)

内置你有T4 Text Templates。我想在生成代码文件时通常只使用XSLT或控制台应用程序。您还可以使用resharper之类的工具进行比开箱即用更复杂的重构。内置你会发现Encapsulate Field重构。

答案 2 :(得分:0)

您可以使用roslyn api执行此操作。您可以构建一个小型的c#应用程序,向其添加roslyn api,使用roslyn打开您的winform和asp.net项目并执行您想要的此类操作。

首先创建获取文件并返回新文件的类。

public class FieldToPropertyConverter: CSharpSyntaxRewriter
{
 FieldToPropertyConverter(string YourSolutionFilePath)
{
    OpenSolution( YourSolutionFilePath);
}
public void OpenSolution(string path)
{
    // OPEN your solution here
}
public Solution s ;
public void Convent()
{
     foreach ( var p in s.Projects)
         foreach ( var d in p.Documents)
         {
              var cus = Visit(d.GetSyntaxRootAsync().Result);
              // save cus to solution
         }
         // save you set solution to your work space
}
public override SyntaxNode VisitFieldDeclarationSyntax( FieldDeclarationSyntax f)
{
     PropertyDeclaractionSyntax p =SyntaxFactory.PropertyDeclaraction( f.Declaraction.Type, f.Declaraction.Variables.First().Identifier);
    return p;
} 
}

您可以像这样使用此类

 FieldToPropertyConverter c = new FieldToPropertyConverter("solutionFilePath");
c.Convent();
c.Save();