2009-12-11 81 views
0

我有一个通用的库,其中包含通过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]区域。如果我需要,一些代码示例会很有用。

谢谢。

+5

您是否重新生成了客户端服务参考? – 2009-12-11 19:50:44

+0

建议避免在Web服务中枚举,因为它们会产生向后兼容的问题。你的问题就是一个很好的例子。请参阅http://stackoverflow.com/a/788281/52277 – 2013-07-21 10:10:14

回答

0

回过头来看看这个,我通过正确配置配置文件来解决这个问题。