合并不同WebService之间的相同对象类型

在.NET中使用WebService极其简单,只要添加Web引用即可,然后IDE就会帮你搞定所有一切,但这样做有个缺点,VS.2005的IDE生成的对应每个Web Service的WebServiceProxy类都有自己独立的命名空间,这导致了即使相同的.NET类型,发布在不同的WebService之后,生成的WebServiceProxy类型都在各自的独立命名空间中,结果就是在客户端中使用这些.NET类很麻烦。

其实在.NET中共享不同Web Service只见相同的对象类型是完全可以的,使用命令行方式调用wsdl.exe就可以:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe" /nologo /language:cs /sharetypes /out:MES_WebService.cs /namespace:TRG_MES.MES_WebService http://localhost/MES_Srv/WIP_Workflow.asmx?WSDL http://localhost/MES_Srv/WIP_Transaction.asmx?WSDL http://localhost/MES_Srv/SYS_SiteInfo.asmx?WSDL http://localhost/MES_Srv/RAS_Equipment.asmx?WSDL

如果要将这条命令集成到IDE的自动生成中,可以在菜单->项目->属性->生成事件中,预生成事件命令行中填入:

$(ProjectDir)generateProxy.bat /out:$(ProjectDir)MES_WebService.cs

generateProxy.bat中内容如下:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe" /nologo /language:cs /sharetypes %1 /namespace:TRG_MES.MES_WebService http://localhost/MES_Srv/WIP_Workflow.asmx?WSDL http://localhost/MES_Srv/WIP_Transaction.asmx?WSDL http://localhost/MES_Srv/SYS_SiteInfo.asmx?WSDL http://localhost/MES_Srv/RAS_Equipment.asmx?WSDL

posted @ 2008-04-30 12:50 丁丁 阅读(183) 评论(0)  编辑 收藏 所属分类: .NET技术

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-30 13:05 编辑过


相关链接: