当前位置: 代码迷 >> Web Service >> 要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么处理,多谢
  详细解决方案

要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么处理,多谢

热度:270   发布时间:2016-05-02 02:35:59.0
要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么办,谢谢
本帖最后由 rav009 于 2012-12-17 13:16:52 编辑
比如

public interface Itool
{
    void dosth();
}

public class Person
{
   public Itool tool
   {
       get;
       set;
   }

   public void work()
   {
       this.tool.dosth();
   }
}


这个Person类无法序列化,因为其中tool用的是接口来声明的
因为项目中用到的是spring.net,所以大量成员变量是用interface来声明的,通过依赖注入来赋值的,请问要把这样的一个类序列化,怎么做到,谢谢?


------解决方案--------------------
接口是抽象的,是不能被实例化的,序列化的时候是必须有具体的实现才行。可以实现序列化的接口,自定义序列化方法。
------解决方案--------------------
类需要标记可序列化
接口属性必须实例化
------解决方案--------------------
  Person 标记 [Serializable], tool必须实例化才可以
  相关解决方案