【发布时间】:2023-03-29 03:12:01
【问题描述】:
我创建了一个 Web 服务,其中包含一个枚举值,如下所示
public enum DesignChoice
{
DesignerChoice = 1,
CustomerChoice = 2,
AdditionalDesign=3,
}
当我添加对我的客户网站的引用时,枚举值会按照以下代码进行更改:
(int)DesignChoice.AdditionalDesign 返回 2,但我希望它是 3。
我突然尝试了序列化属性[System.Xml.Serialization.XmlTypeAttribute()],但没有运气。
服务的WSDL对枚举的描述如下:
<s:simpleType name="DesignChoice">
<s:restriction base="s:string">
<s:enumeration value="DesignerChoice" />
<s:enumeration value="CustomerChoice" />
<s:enumeration value="AdditionalDesign" />
</s:restriction>
</s:simpleType>
当我在 VS 的类名上按 F12 时,它会显示以下从元数据生成的代码:
public enum DesignChoice
{
DesignerChoice = 0,
CustomerChoice = 1,
AdditionalDesign = 2,
}
我正在使用 Visual Studio 2005 和 .NET 2.0。
【问题讨论】:
-
你确定你调用的是正确的页面吗?我做了一个快速测试,它按预期返回 3。请记住:您不应该在 asp.net 中使用 Response.Write。你能调试你的代码吗?
-
是的,我做了调试,但值是一样的
-
对了,为什么不用Response.Write呢?
-
您的代码中是否有另一个 DesignChoice 实现?当光标在 DesignChoice 上时,按 F12 进入定义。看看你生成的 HTML,你就知道为什么不应该使用 Response.Write。输出在顶部。我假设你也有一个 .aspx 页面(?)
-
听起来你有一个旧版本,或者类似的东西。
标签: c# asp.net enums .net-2.0 asmx