关于Java与DotNet异构平台WebService中enum对象的交互

碰到这个问题,我的第一感觉是:enum?不就是枚举吗,其实就是简单值对象(如int,long),值对象WebService当然是支持的very well了。但经过几天的折腾,我发现问题没这么简单。今天我把结论放到这里,希望同样遇到此问题的朋友可以免去Research的时间(或者如果有高手知道有更好的解决此问题的方法,可以分享一下)。具体原因如下:

1. 对于java平台使用最广泛的是由axis组件提供的WebService,官方已经提到:enum是WebService中需要避免的对象。解释请参考http://wiki.apache.org/ws/FrontPage/Axis/DotNetInterop

2. 对于enum对象,如果我们查看WebService的wsdl,可以发现只有字符串描述,DotNet中默认指定的从0开始的int值是没有保存在wsdl中的(好像在网上查到W3C根本没有在WebService中制定这个对象),这样,程序中依赖于将enum值强制转为基本值后的代码逻辑(或依赖enum成员顺序的逻辑)是无法正确执行的。

原文地址:https://www.cnblogs.com/andy65007/p/1357936.html