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