如何在包含接口的集合上实现Serialize?

时间:2016-04-19 05:23:04

标签: c# serialization

在我的代码中,我拿着一些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。

如何解决这个问题? 我最好的做法是什么?

0 个答案:

没有答案