在我的代码中,我拿着一些ISerialize的集合。
Dictionary<int, ISerialize> // the int is the key and its mean the ID
我有2种类型的对象=&gt;
public interface ISerialize
{
byte[] Serialize();
ISerialize DeSerialize();
}
class Elem1 : ISerialize
{
public long ID { get; set; }
public string Name { get; set; }
public byte[] Serialize()
{
// Serialize implement
}
public ISerialize DeSerialize()
{
// DeSerialize implement
}
}
class Elem2 : ISerialize
{
public long ID { get; set; }
public string Name1 { get; set; }
public string Name2 { get; set; }
public int Age { get; set; }
public byte[] Serialize()
{
// Serialize implement
}
public ISerialize DeSerialize()
{
// DeSerialize implement
}
}
我想序列化和DeSerialize所有字典 所以我知道如何进行Serialize(只需使用foreach并创建continue byte [])
但是当我做DeSerialize时,我无法知道我处理的是哪种类型(Elem1或Elem2),而我实际上无法进行DeSerialize。
如何解决这个问题? 我最好的做法是什么?