C#:Serialize object vs create new XDocument

时间:2015-02-24 07:52:05

标签: c# xml serialization

哪种解决方案更适合创建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序列化?

1 个答案:

答案 0 :(得分:1)

我在许多事件中使用过.NET序列化,并没有遇到任何严重的问题,但这并不一定意味着你不会。可能有其他开发人员将.NET的服务视为一个陷阱。

在我的拙见中,我发现.NET的序列化非常令人满意且易于使用。虽然我最近才使用XDocument,但我发现查询XML文件非常容易,但无法提供有关创建文档的任何反馈。

P.S。 :请让我问一下,在创建XML文档时是否存在特殊情况,这可能会导致使用.NET序列化时出现问题?