winform 开发
例子:
有一个StudentService服务,其中提供类之一:        public bool Del(int id){ }
        public bool Add(Student student) { }
        public List<Student> GetAll { }
        //还有更复杂的方法(所谓复杂就是参数、返回值都是系统定义的类型)现在情况是,服务的地址是可变的,需要动态引用。
我现在需要在我的一个方法内调用这个服务的各种方法,什么办?难点:
1、添加Web引用?但如果在程序运行时动态改变其地址?
2、创建代理类,动态调用方法。对于像        public bool Del(int id){ }
参数、返回值简单的容易解决,但对于
        
        public bool Add(Student student) { }
        public List<Student> GetAll { }Student这类参数都是服务定义的,还有很多很多是服务定义的类型需要用到?我应该什么做?
比如:Add()方法中Student我如果构造传到服务中调用?GetAll()方法返回的集合如果取出? 各位进来的朋友帮帮我吧?

解决方案 »

  1.   

    在配置文件中保存一个service的Ip
    在程序中通过动态加载并编译方式
    代码:http://download.csdn.net/source/2807282
      

  2.   

    如果是用vs添加的web服务引用,那么,vs已经帮你把服务地址写在 app.config 里了,要改变服务地址,只需编辑配置文件,代码改怎么写怎么写
      

  3.   

    添加Web引用的时候,注意有个高级,在那里添加的WebService,实例化以后,
    会有个Url的属性,你在调用方法之前,动态修改Url的地址就行了。
      

  4.   

    你是说把.wsdl文件相关的IP都改了就行了?
      

  5.   

    初步测试感觉可以,这种方式前提是一定要有一个Web引用对吧
    希望上头可以接受,就怕上头连Web引用都不允许添加一个。