StyleCop使用XDocument / XElement / XAttribute快乐创建Xml

时间:2010-06-30 14:33:26

标签: c# coding-style stylecop linq-to-xml xelement

我喜欢使用以下格式创建xml:

XDocument xml = new XDocument(
   new XElement("Root",
      new XElement("A",
         new XAttribute("X", xValue),
         new XAttribute("Y", yValue)),
      new XElement("B",
         new XAttribute("Z", zValue)),
      new XElement("C")));

它似乎很容易阅读,有点像标签式XML文档(在我看来)。 StyleCop对格式化非常不满意。我收到了很多这样的错误:

SA1116:如果方法参数位于不同的行上,则第一个参数必须从方法名称下方的行开始。

SA1118:参数跨越多行。如果参数很短,请将整个参数放在一行上。否则,将参数的内容保存在临时变量中,并将临时变量作为参数传递。

我能做些什么来保持StyleCop的快乐和代码的可读性?我知道我可以禁用StyleCop规则,但团队希望为所有非XML创建代码保留这些规则。我可以选择性地抑制以这种方式创建XML的每个方法中的规则,但这看起来很痛苦并且变得难看。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

是的,我建议如下:

  • 为项目创建“默认资源”(右键单击项目,属性,资源)
  • 在那里创建一个新的字符串资源,将Name设置为DefaultXmlDoc或其他东西
  • 将值设置为以下文本:
    <Root>
    <A X="1" Y="2" />
    <B Z="3" />
    <C />
    </Root>
  • 将您的计划更改为以下单行:
    XDocument xml = XDocument.Parse( Properties.Resources.DefaultXmlDoc );

我相信这可以实现你的所有目标。