【发布时间】:2009-12-11 19:26:47
【问题描述】:
我有一个公共库,其中包含通过 DLL 在 WCF 服务和客户端之间共享的枚举。是的,我知道这样做的更好方法是从我的公共库中创建一个服务 - 以备后用。
我对我的公共库进行了更改,向枚举添加了另一个字段。编译后,我更新了 WCF 服务和我的 Web 客户端中的 DLL。
最初,我收到了错误:
确保必要的枚举值 存在并标有 EnumMemberAttribute 属性,如果 类型具有 DataContractAttribute 属性。
通过从客户端上的服务引用配置中删除检查“在引用的程序集中重用类型”,这一问题得到了快速纠正。
现在,我收到一个关于我添加的新枚举值的错误:
无效的枚举值 'TestDataReceived_OK_NoDataWritten' 不能反序列化成类型...
所以这让我相信那里有两个库版本,但我不确定如何解决这个问题。
我没有在我的服务界面中设置任何类型的 [DataContract] 区域。如果需要,一些代码示例会很有用。
谢谢。
【问题讨论】:
-
您是否重新生成了客户端服务参考?
-
建议避免在 web 服务中使用枚举,因为它们会产生向后兼容的问题。你的问题就是一个很好的例子。见stackoverflow.com/a/788281/52277
标签: c# wcf enums common-library