.NET库 - XML对象映射

时间:2011-04-13 16:52:47

标签: c# .net xml xml-serialization mapping

所有

我正在寻找.net的XML映射库。我想将一个对象映射到XML,然后将XML转换回该对象。 我知道.net中对这种类型的映射有本机支持,但是非常有限和严格。我正在寻找更多的库,例如存在于Java中的Castor(http://www.castor.org/)。如果您了解任何其他灵活的XML映射库,请随时发表评论。 感谢。

4 个答案:

答案 0 :(得分:2)

Xsd2Code是我遇到的最好的。

还有一个在线工具,CodeXS非常好。微软也有XSDObjectGen,它比Visual Studio使用的工具更好,但都不如Xsd2Code好。

答案 1 :(得分:2)

有两种XML和对象映射。如果从.NET对象开始,序列化为XML,并将其转换回对象,那就称为XML序列化。为此,请参阅Serialization and Deserialization

另一方面,如果您确切知道XML应该是什么样的,那么您希望将它们自动解析为对象,然后将它们转换回XML。您首先要准备一个模式定义(在XSD或Relax NG中)并生成一个代码。这称为XML数据绑定。请参阅Comparison of xsd code generators

编辑:我从未使用过这个,但我找到了一个名为xstream.net的XStream .NET端口。我不知道它是否与Castor相比,但我喜欢XStream。

答案 2 :(得分:0)

以下两种方法是否可以解决您的问题:

    public string GetXml(object obj, Type t)
    { 
        ///It will create XML using reflection
        ///but this xml wont have any attributes
        ///all properties will XMl elements
    }

    public object GetXml(string xml, Type t)
    {
        ///It will create the object from the XML
    }

我将此方法作为类型对象的扩展方法。然后访问会更容易。只是让我知道,我会为你实现这个。这是我的ID:sonalsavartkar@gmail.com

答案 3 :(得分:-1)

我们已经创建了一个框架,可以从XML中自动生成C#类。它是一个可视项目模板,您可以将XML传递给它,并且这些类在项目中自动生成。使用这些类,您可以创建/读取/写入XML。

检查此框架和Visual C#项目模板的链接:点击here