[英]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>或類似對象的鏈中。
我已經堅持了一天左右,但我沒主意!
對於其他嘗試完成類似任務的人員:我最終在BaseFoo
, Foo1
, Foo2
和ClassToSerialize
上實現了ISerializable
。
我在接口中添加了FooType Type
字段,並在基類上實現了它。
在實現中,我先反序列化為BaseFoo
,然后再基於類型為Foo1
或Foo2
反序列Foo2
。
我希望聽到更好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.