请问如何通过一个url如:xxx.asmx获取该服务提供的所有方法名称,我需要加载到下拉列表中,然后根据下拉列表的选中值(服务方法名称)获取调用该服务方法需要输入的所有参数和返回值的类型?
反射,webservice 实际上就是一个代理类,如果所有方法的参数和返回值都一样就好办。
否则。。。。。
你添加了服务引用以后,不是在你的项目中会生成一个类,你反射这个类就行了
此为wp7中天气预报服务示例:
1添加web引用
2实例化并反射
//初始化信息
ServiceReference1.WeatherWebServiceSoapClient serviceCliend = new ServiceReference1.WeatherWebServiceSoapClient();
serviceCliend.getWeatherbyCityNameAsync( "北京");//异步获取City的详细天气信息
serviceCliend.getWeatherbyCityNameCompleted += new EventHandler<ServiceReference1.getWeatherbyCityNameCompletedEventArgs>(serviceCliend_getWeatherbyCityNameCompleted);
3 异步事件中定义数组并获取所有返回值string[] weatherArray = e.Result;
4,根据参数不同dropdownlist.ItemsSource = String[i];
注意:如果web中没使用异步事件也是可以的。在同步事件中获取返回值并绑定