反序列化派生对象的集合,其中派生类型在编译时是未知的(C#)

时间:2016-11-14 16:17:51

标签: c# xml serialization deserialization

我的场景接近thread中的场景。我想提供一个更具体的例子,但不知道如何在该线程上询问它并让它看起来很漂亮。所以我开始了这个。我在一个类中有一组BaseObjects。我想用派生类的混合集合的Xml输出反序列化这个类。

public class RootElementClass
{

    public BaseTypeCollection Collection{ get; set; }
}

public class BaseType { public int Id{get;set;} }
public class BaseTypeCollection : System.ComponentModel.BindingList<BaseType>{}
public class Derived1BaseType : BaseType { public string Derived1Name{get;set;} }
public class Derived2BaseType : BaseType { public string Derived2Name{get;set;} 
                                           public string DerivedOtherProperty{get;set;} }

如何得到类似的输出:

<RootElementClass>
    <Collection>
        <BaseObject>
            <Id>...</Id>
            <Derived1Name>...</Derived1Name>
        </BaseObject>
        <BaseObject>
            <Id>...</Id>
            <Derived2Name>...</Derived2Name>
            <DerivedOtherProperty>...</DerivedOtherProperty>
        </BaseObject>
    </Collection>
</RootElementClass>

0 个答案:

没有答案