在我提问之前,让我简要解释一下我的架构。我有一个调用 Web 服务并向其传递几项数据的客户端应用程序。 Web 服务使用此数据进行一些查找,然后使用 BinaryFormatter 将二进制序列化对象作为字节数组返回给客户端。然后客户端反序列化对象并使用它。我的问题是我必须重命名服务器用于新版本的程序集。这在客户端反序列化时导致了问题。我不能选择仅部署新客户端以便可以使用新的程序集名称,所以我的问题是,有没有办法可以更改在序列化期间写入的程序集名称。我知道如何使用 SerializationBinders 进行反序列化,但这并不能解决我的问题,因为这需要部署新的客户端。
我目前正在为 win 表单应用程序和 Web 服务使用 C# 2.0。
最佳答案
如果我使用 .NET 4,Thomas 的解决方案将是完美的。但是,.NET 2.0 不提供此功能。相反,我只是将 dll 重命名为原来的样子。我想最终重命名 dll,但此时我还没有找到一个可行的解决方案,我也不必向客户端部署一些东西。
关于c# - 在二进制序列化期间更改程序集名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927160/