Visual Studio 2017正则批量替换类属性添加BsonElement特性
解决方案:用Visual Studio正则查找替换批量添加BsonElement特性
刚好之前处理过类似的批量特性添加需求,给你一套直接能用的正则方案,步骤如下:
1. 切换到正则查找模式
打开VS的「查找和替换」窗口(快捷键Ctrl+H),点击窗口右下角的「使用正则表达式」按钮(图标是.*),确保正则模式已启用。
2. 填写查找和替换的正则表达式
查找内容:
public\s+string\s+(\w+)\s*\{\s*get;\s*set;\s*\}拆解一下这个正则的作用:
public\s+:匹配public关键字,允许后面跟任意数量的空格(包括换行)string\s+:匹配属性类型string,同样允许后面跟任意空格(\w+):这是核心的捕获组,用来抓取属性名(比如fooo),后续替换时会用到这个值\s*\{\s*get;\s*set;\s*\}:匹配属性的{ get; set; }结构,兼容前后有空格的写法
替换内容:
[BsonElement("$1")] public string $1 { get; set; }这里的
$1就是引用刚才捕获组里抓取到的属性名,会自动把fooo填到特性的引号里,也会保留原属性名。
3. 测试替换
比如原代码行:
public string fooo { get; set; }
替换后会自动变成:
[BsonElement("fooo")] public string fooo { get; set; }
扩展适配不同场景
如果你的属性不只是string类型,比如还有int、DateTime甚至可空类型(int?),可以把查找正则里的string改成[\w.?]+,这样就能匹配更多类型:
- 查找内容调整为:
public\s+([\w.?]+)\s+(\w+)\s*\{\s*get;\s*set;\s*\} - 替换内容对应调整为:
这里[BsonElement("$2")] public $1 $2 { get; set; }$1引用类型名,$2引用属性名,适配更多属性类型的批量处理。
内容的提问来源于stack exchange,提问作者Xavier W.
相关产品推荐
相关产品推荐

