我有一个通用的库,其中包含通过DLL在WCF服务和客户端之间共享的枚举。是的,我知道这样做的更好方式是从我的公共库中创建一个服务 - 这是为了以后。WCF - 通用库枚举问题 - C#
我已经改变了我的共同的lib,增加了另一个字段的枚举。编译完成后,我更新了WCF服务和Web客户端中的DLL。
起初,我得到的错误:
Ensure that the necessary enum values are present and are marked with EnumMemberAttribute attribute if the type has DataContractAttribute attribute.
这很快得到了客户端上从服务中删除参考配置检查“中引用组件重用类型的”校正。
但是现在,我得到一个错误指的是新的枚举值我说:
Invalid enum value 'TestDataReceived_OK_NoDataWritten' cannot be deserialized into type...
因此,这使我相信,有两个版本的库在那里,但我不知道怎么样解决这个问题。
我没有在我的服务接口中设置任何[DataContract]区域。如果我需要,一些代码示例会很有用。
谢谢。
您是否重新生成了客户端服务参考? – 2009-12-11 19:50:44
建议避免在Web服务中枚举,因为它们会产生向后兼容的问题。你的问题就是一个很好的例子。请参阅http://stackoverflow.com/a/788281/52277 – 2013-07-21 10:10:14