作为一个有点纯粹主义者,我不喜欢看到字符串常量散布在我的代码中:
这样做的好处是,我可以轻松地使用Visual Studio或Resharper找到所有这些
所以,我有一个遗留项目,我想将其转换为使用
我在查找中使用了正则表达式:
var x = element.Attribute("Key");
我喜欢将它们存储为单个引用常量,并且我喜欢我在Eric White的XmlPowerTools中首次看到的方法:
public class MyNamespace {
public static readonly XNamespace Namespace = "http://tempuri.org/schema";
public static readonly XName Key = Namespace + "Key";
}
并使用:
var x = element.Attribute(MyNamespace.Key);
这样做的好处是,我可以轻松地使用Visual Studio或Resharper找到所有这些
静态
字段的引用,而不必浏览每个找到的字符串"Key"的实例,可以想象这个字符串在许多无关的地方都被使用。所以,我有一个遗留项目,我想将其转换为使用
XName
方法,并需要查找所有使用字符串而不是XName
的情况。我认为,如果我能停止自动将字符串转换为XName
,编译器就会为我捕获所有这些情况。我在查找中使用了正则表达式:
(Element|Attribute|Ancestor)s?\("
我曾经尝试使用这些结构,但后来发现:
if (element.Name == "key")
我曾经想过,还有什么是我会错过的。
问题是,我该如何停止将字符串自动转换为XName
,或者有什么其他方法可以定位所有应该是XName
的字符串出现?