所属分类:.NET技术 Web Services
-----------------------------------------
本人在web服务中使用自定义类型,出现如下问题:
1.在网站项目添加的web引用不会生成代理类的代码(其它项目如控制台程序添加的可以)。
2.生成的代理类(在控制台程序项目添加的web服务引用)没有使用自定义的类型,而是使用代理类中新定义的类似类型。
本人尝试的解决方法:
1.修改生成的代理类代码,问题:太麻烦了,每次更新web引用都要重新修改,而且web项目根本就没有代理类的代码来修改,需要另建项目。
2.使用SchemaImporterExtension,参考http://www.microsoft.com/belux/msdn/nl/community/columns/jdruyts/wsproxy.mspx,问题是只能解决非集合类型的问题,对于自定义的集合类型(使用ICollection接口的)生成的代理类是集合元素的数组形式,不是预期的自定义集合类型。
请高手指点。
----------------------------------------------------------------------
Web中使用自定义类型是比较局限的.
我在项目中使用的时候是直接定义为"对象数组"的,好像还没有什么好的解决办法.而且这些对象是没有方法的,只能用作数据的传输.不是真正意义上的"类".
要是想功能够强大,还是用Remoting吧.但是这就需要在客户端具有该类型或者接口,总之,偶合性还是比较强.
听说DonNET吧什么WebService,Remoting……都合起来了,不知道那个的功能怎么样,可以关注一下.
--------------------------------------------------------
最后说的是DonNET3.0,不好意思.
强烈建议CSDN增加"修改"发言的功能.
--------------------------------------------------------
代理直接生成的类是没有方法的,我现在使用SchemaImporterExtension已经把这个问题解决掉了,生成后可以用我写的类,但有些从ICollection集成的集合类就成了集合成员对象的数组了,这不是我想要的。
--------------------------------------------------------
那我是没有什么好办法了!
看看别人有没有什么办法,学习中……
其实,我觉得从原理上来讲,微软也是反射出相应的类,然后把传过来的XML填入.
这样再创建个集合类,把相应的数据填入也可以达到效果吧!不过划不来,呵呵!
--------------------------------------------------------
不太懂,不乱讲
看看别人有没有什么办法,学习中……