C# 创建XML元素时硬编码字符串操作与Xelement

C# 创建XML元素时硬编码字符串操作与Xelement,c#,xml,asp.net-mvc,linq,C#,Xml,Asp.net Mvc,Linq,在c语言中,如果我必须创建一个新的XElement,我可以使用以下两种方法 方法1 string m = "<address>"; m += "<addressline1>" + address.Addressline1 + "</addressline1>"; m += "<addressline2>" + address.Addressline2 + "</addressline2>"; m

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

方法1

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>";

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

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

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

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

您不应该像第一个示例中那样做有几个原因

数据可以包含可能导致问题的字符,第二种方法是自动处理数据 在第一种情况下,代码可读性显著下降 硬代码是一种严重的反模式 第二种方法为将对象作为XML文档进行进一步操作提供了坚实的工具
希莱门特。它不仅可以为您自动进行XML编码,还可以让您更容易处理。-1用于基于意见的问题,尽管选择2显然更好。@Brad:Hmmm。我不认为这是一个意见问题。使用字符串操作显然是错误的。感谢Brad,我是一个新手,这个问题可能有一天会帮助另一个新手学习。这不是一个基于观点的问题。可以用一种精确和不含糊的方式回答。
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)
                                  );