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 的序列化出现问题?