0

我正在尝试找到一种方法来序列化和反序列化下面的 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< IFoo > 或类似对象中。

我已经坚持了一天左右,我没有想法!

4

1 回答 1

0

对于其他试图完成类似事情的人:我最终实现了ISerializableon BaseFooFoo1和.Foo2ClassToSerialize

FooType Type在接口中添加了一个字段并在基类上实现了它。

在实现中,我首先反序列化 toBaseFoo然后,我再次基于类型 toFoo1或反序列化Foo2

我很想听听更好的方法。

于 2016-11-15T20:44:29.640 回答