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

本文关键字:setter getter 转换 属性 | 更新日期: 2023-09-27 18:13:07

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

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

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

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

如果您只需要这样做一次,您可以让r#通过代码清理操作为您完成。

右键单击项目(或解决方案,或单个源文件),选择"Cleanup code…",然后使用包含"use auto-property, if possible"的配置文件。(如果您还没有这样的配置文件,您可以从该对话框中编辑您的配置文件。)

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

下面的Visual Studio正则表达式将在插入" find &替换"工具。

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

这个模式将执行替换。

    public '1 '2 { get; set; }