【发布时间】:2009-09-15 20:31:21
【问题描述】:
我有一个网络服务,我正在传递一个枚举
public enum QueryType {
Inquiry = 1
Maintainence = 2
}
当我传递一个具有 QueryType 参数的对象时,我从 Web 服务返回错误消息:
'2' 不是 QueryType 的有效值
当您从枚举的声明中可以清楚地看到它时。
我无法更改枚举的值,因为遗留应用程序使用这些值,但我宁愿不必插入“默认”值来推送枚举的索引以使其与我的 Web 服务一起使用。它就像 Web 服务使用值的索引而不是值本身一样。
是否有人建议我可以做些什么来使它工作,我可以在我的 WSDL 中更改什么吗?
【问题讨论】:
-
您确定 Web 服务中的二进制文件是最新的吗?当我编译一个库项目并忘记将 DLL 复制到 Web 服务文件夹时,我看到过类似的东西。
-
不,我不确定,但是我知道该枚举的签名没有改变。这还会导致这个问题吗?我将尝试使用最新的 DLL 更新 Web 服务,看看是否会有所作为。谢谢保罗!
-
保罗,不幸的是,这不起作用。看起来它真的是在尝试采用枚举的零索引而不是按值
-
某处是否还有另一个 QueryType 枚举? MSDN 帮助说 Microsoft.SharePoint.Dsp 中有一个。
-
我不确定。在我有更多时间使用它之前,我最终在过渡期间所做的是将其值转换为 int 并将 int 传递给服务,然后将其重新转换为 Web 服务端的 QueryType。似乎这样工作正常
标签: c# web-services enums wsdl