要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么处理,多谢
要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么办,谢谢本帖最后由 rav009 于 2012-12-17 13
要序列化的一个类里有成员对象是用接口声明的,无法序列化,怎么办,谢谢
本帖最后由 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必须实例化才可以