反序列化找不到程序集
我服务器端序列化后UDP发送到客户端,然后反序列化,命名空间不一样,提示无法找到程序集
我试了网上的操作:
方法1.将dll加入强名称,注册到全局程序集缓存中
方法2.在反序列化使用的IFormatter 对象加入Binder 属性,使其获取要反序列化的对象所在的程序集
示例如下:
public void DeSerialize( byte [] data, int offset)
{
IFormatter formatter = new BinaryFormatter();
formatter.Binder = new UBinder();
MemoryStream stream = new MemoryStream(data, offset, stringlength);
this .m_bodyobject = ( object )formatter.Deserialize(stream);
}
public class UBinder:SerializationBinder
{
public override Type BindToType( string assemblyName, string typeName)
{
Assembly ass = Assembly.GetExecutingAssembly();
return ass.GetType(typeName);
}
}
我加了其中了第二步,还是不行,第一步应该怎么操作啊?