反序列化操作在应用程序状态下能用,在类库中就不行--解决方法
在应用程序里面进行序列化反序列化操作没有问题,但如果把它们提取成dll,引入其它的项目中,
提示找不到程序集.
原因是序列化时把序列化类的命名空间等信息保存了,但应用程序和类库的命名空间可能是
不一样的,所以提示找不到程序集.
解决方法如下:
1.将dll加入强名称,注册到全局程序集缓存中
2.在反序列化使用的IFormatter对象加入Binder属性,使其获取要反序列化的对象所在的程序集
示例如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
在应用程序里面进行序列化反序列化操作没有问题,但如果把它们提取成dll,引入其它的项目中,
提示找不到程序集.
原因是序列化时把序列化类的命名空间等信息保存了,但应用程序和类库的命名空间可能是
不一样的,所以提示找不到程序集.
解决方法如下:
1.将dll加入强名称,注册到全局程序集缓存中
2.在反序列化使用的IFormatter对象加入Binder属性,使其获取要反序列化的对象所在的程序集
示例如下: