二进制流中的.NET远程处理异常

mnemlml8  于 2023-01-06  发布在  .NET
关注(0)|答案(1)|浏览(131)

我在使用.NET远程处理时遇到了一个奇怪的异常,异常消息如下所示:
“二进制流”0“不包含有效的BinaryHeader。可能的原因是流无效或在序列化和反序列化之间对象版本发生更改。”
我在这个代码块中遇到了这个异常:

static bool _isUsable=false;

if(_isUsable)
{
    IExchange exchangeObject = (IExchange)Activator.GetObject(typeof(IExchange), "tcp://localhost:24001/ExchangService");
            
    if (exchangeObject != null)
    {
        try
        {
            var result = exchangeObject.GetPrise(20);
        }
        catch (Exception exp)
        {
            var testMessage = exp.Message;
        }
    }
    else
    {
        var testMessage = "object is null";
    }
}

这个问题奇怪之处在于,如果我删除if(_isUsable)块,.NET远程处理将毫无例外地完成。

nbysray5

nbysray51#

我在一个用于反射模式的DLL中使用了这个代码块,我将DLL类改为静态,这个问题就解决了。

相关问题