假设我们现有代码为;
namespace Company.Product1
{
class Class1
{
}
}
现在我们需要根据条件符号更改命名空间,使其成为;
#if PRODUCT1
namespace Company.Product1
#else
namespace Company.Product2
#endif
{
class Class1
{
}
}
由于我们有数百个课程,因此需要花费大量时间进行手动操作。有什么简单的方法吗?或者如何使用正则表达式执行此操作?
任何帮助将不胜感激。
答案 0 :(得分:2)
在两个不同的命名空间中使用相同的代码似乎是一种反模式,但是你可能有一些我不知道的原因,所以无论如何我都会尝试回答你的问题。另外,请注意像Resharper这样的工具可以使用重构工具轻松重命名整个命名空间。
要简单地替换每个源文件中的命名空间定义,您可以使用Visual Studio 2013文本编辑器(也应该在以前的版本中使用):
1)选择修改> 查找和替换> 快速替换
2)在搜索字词文本框中输入文字命名空间Company.Product1
3)在替换术语文本框中输入文本 #if PRODUCT1 \ nnamespace Company.Product1 \ n #nocout \ nnamespace Company.Product2 \ n#endif 。请注意如何使用 \ n 输入换行符。
4)确保选中使用正则表达式。这是允许您在替换文本中转义换行符的选项。您还可以查看匹配大小写和匹配整个单词。
5)将范围设置为整个解决方案。
6)点击全部替换进行替换。