关于更新可序列化类的奇怪WCF错误

时间:2012-10-31 18:39:44

标签: c# .net wcf

这是设置,我在MyAssembly中有一个看起来像这样的集合类:

[Serializable()]
public class MyCollection : List<MyItem> //MyItem is also serializable
{
    public string MyProperty{ get; set; }

    //some methods for use by the current assembly
}

我有一个应用程序引用了一个wcf服务,而该服务又引用了这个MyAssembly

问题:过去我们对类进行了很多更改而没有任何问题,但是我最近向MyCollection添加了几个新方法(没有新属性)和在重新编译和重新部署wcf服务之后,使用该服务的应用程序将在被调用时返回null MyCollection

解决方案和问题:在应用中更新服务参考使一切恢复正常,但我的问题是为什么?我的理解是,除非更改或删除某些内容,否则无需更新引用即可将新项添加到类中。有人可以解释一下或在某个地方推荐我吗?

1 个答案:

答案 0 :(得分:1)

当您添加对wcf服务的引用时,服务对象的副本(不是实际的副本,更像是代理对象)放在客户端。因此,当您更新wcf服务对象时,客户端仍然只剩下旧的(无效)副本。 在wcf服务器ServiceContract或DataContract上进行更改时,应始终在客户端更新引用。