C 動態呼叫Web服務方法

2021-06-07 08:10:06 字數 1775 閱讀 6557

using system;   

using system.net;

using system.io;

using system.codedom;

using microsoft.csharp;

using system.codedom.compiler;

using system.web.services.description;

using system.web.services.protocols;

namespace hb.common

/// < summary>

/// 動態呼叫web服務

/// < /summary>

/// < param name="url">wsdl服務位址< /param>

/// < param name="classname">類名< /param>

/// < param name="methodname">方法名< /param>

/// < param name="args">引數< /param>

/// < returns>< /returns>

public static object invokewebservice(string url, string classname, string methodname, object args)

try

throw new exception(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);

return mi.invoke(obj, args);

/*

propertyinfo propertyinfo = type.getproperty(propertyname);

return propertyinfo.getvalue(obj, null);

*/

}

catch (exception ex)

}

private static string getwsclassname(string wsurl)

#endregion

}

}

返回時如果不是字串,即強制轉換,如返回是dataset,則

string url = "" ;   

string args = new string[2] ;

args[0] = "hangzhou";

args[1] = "china" ;

object result = webservicehelper.invokewebservice(url ,"getweather" ,args) ;

dataset dsre=(dataset)result;

動態呼叫web服務

通常我們在程式中需要呼叫webservice時,都是通過 新增web引用 讓vs.net環境來為我們生成服務 然後呼叫對應的web服務。這樣是使工作簡單了,但是卻和提供web服務的url 方法名 引數繫結在一起了,這是vs.net自動為我們生成web服務 的限制。如果哪一天發布web服務的url改變...

動態呼叫web服務

通常我們在程式中需要呼叫webservice時,都是通過 新增web引用 讓vs.net環境來為我們生成服務 然後呼叫對應的web服務。這樣是使工作簡單了,但是卻和提供web服務的url 方法名 引數繫結在一起了,這是vs.net自動為我們生成web服務 的限制。如果哪一天發布web服務的url改變...

動態呼叫WEB服務 以呼叫天氣為例子

方法1 using system using system.net using system.io using system.codedom using microsoft.csharp using system.codedom.compiler using system.web.services....