我正在尝试找到一种方法来序列化和反序列化以下构建的ClassToSerialize:
[Serializable]
public interface IFoo
{
}
[Serializable]
public class BaseFoo : IFoo
{
}
[Serializable]
public class Foo1 : BaseFoo
{
public string Foo1_Member1 { get; set; }
public int Foo1_Member2 { get; set; }
}
[Serializable]
public class Foo2 : BaseFoo
{
public IList<IFoo> Foo2_Member3 { get; set; }
public string Foo2_Member4 { get; set; }
}
[Serializable]
public class ClassToSerialize
{
public string Class_Member1;
public IFoo Foo;
}
该类将被传递给API,并且在反序列化时,需要重构Foo1和Foo2的实例并将其放入“Foo”属性并且在链中进入IList&lt; IFoo&gt;或类似的对象。
我已经坚持了一天左右,而且我的想法不合时宜!
答案 0 :(得分:0)
对于尝试完成类似工作的其他人:我已经在ISerializable
,BaseFoo
,Foo1
和Foo2
上实施了ClassToSerialize
。
我在接口中添加了FooType Type
字段,并在基类上实现了它。
在实现中,我首先反序列化为BaseFoo
然后,我根据类型再次反序列化为Foo1
或Foo2
。
我很想听听更好的方法。