最近开发的一套软件中需要用到在WinForm中访问未知地址的WebService,不知道如何下手,看了半天网上的文章也没有搞清楚该怎么做。其间看到一篇文章如下链接:
http://blog.csdn.net/fangxinggood/archive/2005/06/02/386359.aspx
说实话,本人愚笨,居然仿造不来该文章的方法,但是这句话引起我的注意:“原先,我认为比较简单的解决就是,先手动的添加一个Web引用,然后修改下本地的代理类。最后实现Web Service的URI部署到配置文件里。”。
受到启发后我打开.net编辑器在在解决方案资源管理器中找到Web References,点菜单“显示所有文件”。在显示的文件中发现Reference.map文件还附属着Reference.vb文件。接着打开,看到相关的Web引用类localhost代码,还意外的发现居然还有个属性为url。那么是否动态修改这个URL就能够起到动态访问WebService的问题呢?我在窗体的Formload事件中写下如下代码:
Dim billsvc As New Srvic.BillService
billsvc.Url = "http://192.168.0.1/BillService/BillService.asmx"
Dim cc As String = billsvc.HelloWorld()
MsgBox(cc)
其中Srvic.BillService中的Srvic为Reference.vb文件中的namespace名称,BillService为Reference.vb文件中的类名称。
最后发现确实能够起到动态访问的效果