为了账号安全,请及时绑定邮箱和手机立即绑定

.net的WebService返回自定义类型时,其中的Enum类型的属性,怎样返回它的值而不是名称?

.net的WebService返回自定义类型时,其中的Enum类型的属性,怎样返回它的值而不是名称?

繁星coding 2018-11-28 12:12:16
类型定义如下:public enum MyTestUnit {     IS = 1,     IIS = 2 } public class MyTestValue {     public MyTestUnit Unit { set; get; }     public double Value { set; get; } }WebService的代码如下:    [WebMethod]     public MyTestValue GetMyValue()     {         MyTestValue MyNewValue = new MyTestValue();         MyNewValue.Unit = MyTestUnit.IIS;         MyNewValue.Value = 11.2;         return MyNewValue;     }得到的XML如下:<MyTestValue>  <Unit>IIS</Unit>  <Value>11.2</Value>  </MyTestValue>问题如下:请问,要怎样才能让得到的XML中<Unit>IIS</Unit>一节里的内容不是“IIS”而是它对应的数字“2”?已知的解决办法:public enum MyTestUnit {     [System.Xml.Serialization.XmlEnum("1")]     IS = 1,     [System.Xml.Serialization.XmlEnum("2")]     IIS = 2 }不过,系统中的所有Enum都是其他的人写的,已经写了很多了,所以最好不要这样。
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

很难解决的问题,需要分析 System.Xml.Serialization.XmlReflectionImporter.ImportEnumMapping 的代码寻找解决方法。

查看完整回答
反对 回复 2018-12-02
?
慕容森

TA贡献1853条经验 获得超18个赞

你在本地也做一个枚举,跟服务器一样的,然后通过他来转换下

查看完整回答
反对 回复 2018-12-02
  • 2 回答
  • 0 关注
  • 612 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信