小编use*_*676的帖子

C#无法反序列化DataTable

我有一个客户端/服务器项目,我正在尝试通过套接字从服务器向客户端发送DataTable(从TableAdapter中提取).我的服务器命名空间是srvCentral,我的客户端是appClient.当我尝试在客户端反序列化DataTable时,它会抛出一个序列化异常,说无法找到程序集'srvCentral,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'我用谷歌搜索并尝试控制AssemblyResolve之类的东西,这使得svchost挂起并强迫我关闭,并使用这样的绑定器:

sealed class AllowAllAssemblyVersionsDeserializationBinder : SerializationBinder
{
    public override Type BindToType(string assemblyName, string typeName)
    {
        Type typeToDeserialize = null;

        String currentAssembly = Assembly.GetExecutingAssembly().FullName;

        // In this case we are always using the current assembly
        assemblyName = currentAssembly;

        // Get the type using the typeName and assemblyName
        typeToDeserialize = Type.GetType(String.Format("{0}, {1}",
                                         typeName, assemblyName));

        return typeToDeserialize;
    }
}
Run Code Online (Sandbox Code Playgroud)

那里的例外情况仍然存在......是不是假设DataTable可以在任何地方进行反序列化?我究竟做错了什么?

我的序列化代码是:

public byte[] Serializar(Object item)
{
    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    formatter.Serialize(ms, …
Run Code Online (Sandbox Code Playgroud)

c# datatable assembly-resolution deserialization binary-deserialization

2
推荐指数
1
解决办法
2906
查看次数