我有一個通用的庫,其中包含通過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