動態呼叫webservice 類
using system;
using system.collections.generic;
using system.text;
using system.web.services.description;
using system.xml.serialization;
using system.net;
using system.codedom;
using system.codedom.compiler;
using system.reflection;
using system.io;
servicedescriptionimportwarnings warning = importer.import(nmspace, unit);
codedomprovider provider = codedomprovider.createprovider("csharp");
compilerparameters parameter = new compilerparameters();
parameter.generateexecutable = false;
//輸出程式集的名稱,在配置檔案中配置
string outdllname = configmanager.getvalue("outdllname");
parameter.outputassembly = outdllname;
parameter.referencedassemblies.add("system.dll");
parameter.referencedassemblies.add("system.xml.dll");
parameter.referencedassemblies.add("system.web.services.dll");
parameter.referencedassemblies.add("system.data.dll");
compilerresults result = provider.compileassemblyfromdom(parameter, unit);
if (result.errors.haserrors)
//載入前面生成的程式集
assembly asm = assembly.loadfrom(outdllname);
string webserviceclassname = configmanager.getvalue("webserviceclassname");
type typeobj = asm.gettype(webserviceclassname);
object obj = activator.createinstance(typeobj);
int count = msginfos.length;
object objparams = new object[count];
int i = 0;
foreach (string str in msginfos)
/// 從配置檔案獲取方法名稱
string methodname = configmanager.getvalue("webservicemethodname");
object objresult = typeobj.invokemember(methodname, bindingflags.default | bindingflags.invokemethod, null, obj, objparams);
if (objresult == null)
log.log("呼叫失敗");
log.log("呼叫成功" + objresult.tostring());
return objresult;
}catch (exception ex)
return null;}}
}配置檔案
動態呼叫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.建立...