自动将属性转换为自动getter / setter

时间:2014-07-15 14:42:28

标签: c# .net regex properties resharper

我已经从WSDL文件生成了服务通信的代码库,导致大约100个类包含以下内容:

public class SomeClass {

    private string _someVar;

    public string SomeVar {
       get { return _someVar; }
       set { _someVar = value; }
    }

}

是否可以自动将其中的每个人变成自动属性?也许使用ReSharper或一些正则表达式魔法?

2 个答案:

答案 0 :(得分:1)

如果您只需要执行一次此操作,则可以让R#通过代码清理操作为您执行此操作。

右键单击项目(或解决方案或单个源文件),选择"清理代码..."然后使用包含"使用自动属性的配置文件,如果可能的话。" (如果您还没有这样的个人资料,可以在该对话框中编辑个人资料。)

但是,我强烈建议您将生成的代码与手写代码分开。使所有生成的代码都使用部分类型(以及可能的部分方法) - 这样您就可以创建一个手写的部分类型,它与自动生成的代码合并,而不是在同一个文件中。您不需要查看生成的代码,以后可以将其替换为其他版本,而无需担心任何自定义更改。

答案 1 :(得分:0)

以下Visual Studio正则表达式将在插入"查找&放大器时找到您上面的模式。替换"工具。

    private:Wh*:i:Wh*:i;:Wh*public:Wh*(:i):Wh*(:i):Wh*\{:Wh*get:Wh*\{[^\}]*\}:Wh*set:Wh*\{[^\}]*\}:Wh*\}

此模式将替换。

    public \1 \2 { get; set; }