簡體   English   中英

具有接口列表的類的C#自定義序列化

[英]C# custom serialization of a class with list of interfaces

我試圖找到一種方法來序列化和反序列化下面構建的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>或類似對象的鏈中。

我已經堅持了一天左右,但我沒主意!

對於其他嘗試完成類似任務的人員:我最終在BaseFooFoo1Foo2ClassToSerialize上實現了ISerializable

我在接口中添加了FooType Type字段,並在基類上實現了它。

在實現中,我先反序列化為BaseFoo ,然后再基於類型為Foo1Foo2反序列Foo2

我希望聽到更好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM