-1

在 c# 中,如果我必须创建一个新的 XElement,我可以使用以下两种方法。

方法一

string m = "<address>";
       m += "<addressline1>" + address.Addressline1 + "</addressline1>";
       m += "<addressline2>" + address.Addressline2 + "</addressline2>";
       m += "<city>" + address.Addressline1 + "</city>";
       m += "<postcode>" + address.Addressline1 + "</postcode>";
       m += "</address>";

方法二

XElement a = new XElement("address",
                     new XElement("addressline1", address.Addressline1),
                     new XElement("addressline2", address.Addressline2),
                     new XElement("city", address.City),
                     new XElement("postcode", address.postcode)
                                  );

如果我的最终目标只是获取自定义对象作为 XML 字符串,哪种方法更可取?

4

3 回答 3

6

永远不要使用字符串操作来构建 XML。请改用 XML API XElement。它知道 XML 的所有规则,而字符串连接则不知道。

于 2013-07-01T19:35:24.147 回答
2

我强烈建议使用第二种方法。如果您的值当然来自变量。如果您的 xml 已定义并且不会更改,请将其以 xml 文件的形式存储在文件系统中并按需加载。

有几个原因你不应该像第一个例子那样做

  • 数据可以包含<>可能导致问题的字符,第二种方式自动处理
  • 在第一种情况下,代码可读性显着下降
  • 硬代码是一种严重的反模式
  • 第二种方法为您提供了可靠的工具,可以将对象作为 XML 文档进行进一步操作
于 2013-07-01T19:38:52.760 回答
1

第二个更好,因为 XElement 将为您转义所有值。

于 2013-07-01T19:35:14.943 回答