我有一个看起来像这样的 wcf 服务:
[DataContract]
enum MyEnum
{
[EnumMember]Member1,
[EnumMember]Member2,
[EnumMember]Member3
}
[ServiceContract]
interface IMyService
{
[OperationContract]
string SolveBotguard(
SolutionType myEnum);
}
该服务运行良好,并且我创建了一个工作客户端,它带有一个暴露的 mex 端点。
现在我在枚举中添加了一个新成员:
[DataContract]
enum MyEnum
{
[EnumMember]Member1,
[EnumMember]Member2,
[EnumMember]Member4,
[EnumMember]Member3
}
再次,通过 MEX 端点更新客户端。但是现在,当我尝试使用新的枚举成员作为参数调用服务时,出现以下错误:
The formatter threw an exception while trying to deserialize the message: There
was an error while trying to deserialize parameter http://tempuri.org/:myEnum.
The InnerException message was 'Invalid enum value 'Member4' cannot be
deserialized into type 'MyEnum'. Ensure that the necessary enum values are
present and are marked with EnumMemberAttribute attribute if the type has
DataContractAttribute attribute.'. Please see InnerException for more details.
我尝试删除客户端和服务文件并从源头重新构建它们,但没有任何效果。
我该如何摆脱这个异常?