.NET JAXB等价吗?

时间:2010-03-13 05:44:42

标签: c# .net jaxb

.NET中是否有JAXB的等效库?我正在尝试将XML转换为.NET类。我有XSD,但不知道如何将收到的XML转换为具体的类?我使用XSD tool从模式生成一个类,但我想将我即时收到的XML转换为我可以在代码中使用的对象。

我已经看到了处理此问题的线程here,但我的查询是 - 我希望创建的对象包含我在XML中收到的数据(即必须填充字段值)。

2 个答案:

答案 0 :(得分:10)

您可以使用xsd.exe生成该类,然后在代码中使用XmlSerializer来填充该类。例如,如果xsd.exe创建了一个名为Foo的类,您可以编写:

Foo someFoo;
using (var stream = new FileStream("foo.xml", FileMode.Open))
{
    var serializer = new XmlSerializer(typeof(Foo));
    someFoo = serializer.Deserialize(stream);
}

答案 1 :(得分:0)

这是一种更好的方式,更接近我的目标:

static public string serializeObject(ProductPriceLines objecteToSerialize)
    {
        System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(ProductPriceLines));

        System.IO.MemoryStream t = new System.IO.MemoryStream();
        mySerializer.Serialize(t, objecteToSerialize);


        UTF8Encoding utf = new UTF8Encoding();
        string strbytes = utf.GetString(t.ToArray());


        return strbytes;
    }