gpt4 book ai didi

c# - .Net Remoting 序列化问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:14 27 4
gpt4 key购买 nike

我遇到了 .Net Remoting 的问题:

我们有两个应用程序,一个客户端和一个服务器。客户端可以连接到服务器并通过 .Net Remoting 检索配置。

我们有一个允许将我们的软件部署到客户端的设置。这种设置混淆了我们所有的代码,但我们有一个排除列表(通过命名空间和 DLL),它排除了所有用于传输数据的类。

最近出现几个月以来,我们在配置中有一个类被序列化,这是错误的。我们看到了这一点,因为我们无法再从调试客户端连接到发布(设置)服务器。

现在的问题是:我们怎样才能找到这个类。

异常(exception)情况如下:

System.Runtime.Serialization.SerializationException occurred
HResult=-2146233076
Message=Cannot get the member '<.ctor>b__5'.
Source=mscorlib
StackTrace:
Server stack trace:
at System.Reflection.MemberInfoSerializationHolder.GetRealObject(StreamingContext context)
at System.Runtime.Serialization.ObjectManager.ResolveObjectReference(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()

我们试图通过去混淆器查看它是什么成员,但似乎异常还不够完整。

我们有很多类、传统......我们目前无法找到哪个类被混淆但不应该被混淆。

由于它是二进制序列化,我们无法轻易看到客户端和服务器之间传输的内容。

什么是更好的方法(修改当前代码越少)来找到哪个是混淆类?

编辑除了 dburner 的回答之外,我想说我已经删除了我的委托(delegate)并使用了直接方法。像这样,这个名字是固定的,不应该根据编译而改变。

最佳答案

看看这个问题Could we save delegates in a file (C#)

委托(delegate)可以在同一个应用程序中序列化和反序列化,如果幸运的话,因为它们是指向函数的指针,并且函数可以有不同的内存位置。

因为您正试图在另一个应用程序中反序列化您的类,所以您遇到了奇怪的错误。

关于c# - .Net Remoting 序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22934976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com