c#動態呼叫webservice
object item = invokewebservice(this._webservicesurl, "helloworld", new object );
publicview codestatic
object invokewebservice(string url, string methodname, object
args)
public
static
object invokewebservice(string url, string classname, string methodname, object
args)
//獲取服務描述語言(wsdl)
webclient wc = new
webclient();
stream stream =wc.openread(url);
servicedescription sd =servicedescription.read(stream);
servicedescriptionimporter sdi = new
servicedescriptionimporter();
sdi.addservicedescription(sd,
"", ""
); codenamespace cn = new
codenamespace(@namespace);
//生成客戶端**類**
codecompileunit ccu = new
codecompileunit();
ccu.namespaces.add(cn);
sdi.import(cn, ccu);
microsoft.csharp.csharpcodeprovider csc = new
microsoft.csharp.csharpcodeprovider();
icodecompiler icc =csc.createcompiler();
//設定編譯器的引數
compilerparameters cplist = new
compilerparameters();
cplist.generateexecutable = false
; cplist.generateinmemory = true
; cplist.referencedassemblies.add(
"system.dll");
cplist.referencedassemblies.add(
"system.xml.dll");
cplist.referencedassemblies.add(
"system.web.services.dll");
cplist.referencedassemblies.add(
"system.data.dll");
//編譯**類
compilerresults cr =icc.compileassemblyfromdom(cplist, ccu);
if (true ==cr.errors.haserrors)
throw
newexception(sb.tostring());
}//生成**例項,並呼叫方法
system.reflection.assembly assembly =cr.compiledassembly;
type t = assembly.gettype(@namespace + "
." + classname, true, true
);
object obj =activator.createinstance(t);
system.reflection.methodinfo mi =t.getmethod(methodname);
system.reflection.methodinfo mt = t.getmethod("
set_url");
mt.invoke(obj,
newobject
);
object
result;
try
catch
(exception ex)
return
result;
}private
static
string getclassname(string
url)
以上為網上參考,謝謝
動態呼叫WebService
public static object invokewebservice string url,string methodname,object args 其中,url是web服務的位址,methodname是要呼叫服務方法名,args是要呼叫web服務所需的引數,返回值就是web服務返回的結果了...
動態呼叫webservice
protected string testservice string strurl,string methodname assembly asm assembly.loadfrom mytest.dll 載入前面生成的程式集 type t asm.gettype testwebservice.se...
動態呼叫WebService
1.大多數情況下,我們都是在vs裡面通過新增web引用的方式,在客戶端自動生成客戶端 去呼叫webservice的,有時候,伺服器端的位址可能會經常變,這裡就需要動態的呼叫webservice,一種是服務沒有變化只是ip位址變化了,這樣我們只需要在獲取客戶端 的時候,將其url位址修改即可。2.建立...