C#将XML反序列化为自定义类

时间:2019-07-09 23:16:46

标签: c# xml xml-deserialization

我有一个配置XML文件,可以将其反序列化为不同的实例,每个实例仅占用此XML的一部分。

class A
{
    public string A { get; set; }
}

class B
{
    public string B { get; set; }
}

public static T Xml2Cls<T>(string filename)
{
    XDocument doc = XDocument.Load(filename);
    var root = new XMLRootAttribte(doc.Root.Name.LocalName);
    var serializer = new XMLSerializer(typeof(T), root);
    using (var reader = doc.Root.CreateReader())
    {
        return (T)serializer .Deserialize(reader);
    }
}

// if I keep calling the following for say 1000 times
// all these instances don't seem to get garbage collected
var a = Xml2Cls<A>("a.xml");
var b = Xml2Cls<B>("a.xml");

<root>
    <a>...</a>
    <b>...</b>
</root>

为什么不实例化那些实例化对象?我尝试将returnusing块中移出,但这没什么作用。

0 个答案:

没有答案
相关问题