C#:序列化对象与创建新的 XDocument
C#: Serialize object vs create new XDocument
哪种解决方案更适合创建 XML?
创建模型xml文档,填写后使用:
XmlSerializer serializer = new XmlSerializer(xmlModel.GetType());
StringWriter sww = new StringWriter();
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlWriter writer = XmlWriter.Create(sww);
serializer.Serialize(writer, xmlModel, ns);
string xmlString = sww.ToString();
或手动创建xml文件,例如:
XDocument xml =
new XDocument(
new XElement("el1",
new XAttribute("xcv", xcv),
new XAttribute("cvb", cvb ?? string.Empty),
new XAttribute("vbn", vbn ?? string.Empty),
new XAttribute("bnm", bnm),
new XAttribute("nm", dnm),
...
我知道 1 的解决方案需要较少的代码,但我可以信任 .net 序列化吗?
我多次使用 .NET 序列化,没有遇到任何严重问题,但这并不一定意味着您不会。可能还有其他开发人员将 .NET 的序列化视为一个陷阱。
以我的拙见,我发现 .NET 的序列化非常令人满意且易于使用。虽然我最近才使用 XDocument,但我发现它很容易用来查询 XML 文件,但无法提供有关创建文档的任何反馈。
P.S。 : 请让我问一下,在创建 XML 文档时是否可能遇到特殊情况,这可能会导致使用 .NET 的序列化出现问题?
哪种解决方案更适合创建 XML?
创建模型xml文档,填写后使用:
XmlSerializer serializer = new XmlSerializer(xmlModel.GetType());
StringWriter sww = new StringWriter();
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlWriter writer = XmlWriter.Create(sww);
serializer.Serialize(writer, xmlModel, ns);
string xmlString = sww.ToString();
或手动创建xml文件,例如:
XDocument xml =
new XDocument(
new XElement("el1",
new XAttribute("xcv", xcv),
new XAttribute("cvb", cvb ?? string.Empty),
new XAttribute("vbn", vbn ?? string.Empty),
new XAttribute("bnm", bnm),
new XAttribute("nm", dnm),
...
我知道 1 的解决方案需要较少的代码,但我可以信任 .net 序列化吗?
我多次使用 .NET 序列化,没有遇到任何严重问题,但这并不一定意味着您不会。可能还有其他开发人员将 .NET 的序列化视为一个陷阱。
以我的拙见,我发现 .NET 的序列化非常令人满意且易于使用。虽然我最近才使用 XDocument,但我发现它很容易用来查询 XML 文件,但无法提供有关创建文档的任何反馈。
P.S。 : 请让我问一下,在创建 XML 文档时是否可能遇到特殊情况,这可能会导致使用 .NET 的序列化出现问题?