WebService 中参数为枚举时引发的血案
今天,打开去了一下管理后台添加点东西: 一看是调用WebService时出的错,问题出现在调用的客户端:(因为没有服务器那边的错误,或者说现在还没有成功请求服务器)。服务器那边的源代码: ? 原因嘛,是我更新过GameCategory这个枚举,服务端的GameCategory已经是最新的;客户端是不是最新呢?当然不是,看看.net 为我们生成的代理类中的GameCategory: ? 我当前请求的枚举值是叫 TianMo;发现里面没有吧?这个大家都知道,更新WebService一下引用就行了。 ? 而我想说的重点不在于此问题本身,在于WebService参数和返回值的问题。 如果参数是枚举值、复杂的Class,哪一天我们改变一个枚举、一个属性值,就要对所有可以涉及到的地方进行更新引用;如果是简单类型,只要不改变参数的名字,是可以不更新的。 ? 此外:对于枚举,引用的WebService还有一个更要命的特性:wsdl生成的代理类(微软自动给你生成的代理类),会把枚举值从0,1,2...重新赋值,如果你的枚举值本身是不连续的,那就会变成连续的错误的值!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |