C 動態呼叫webservice

2022-02-09 02:48:42 字數 2251 閱讀 8448

在做多個系統整合的時候,由於各系統廠商採用不同的架構,在專案實施前期,各業務對業務理解不夠深入,系統介面可能會有較多變化,

在此背景下,動態呼叫webserivce就變得靈活了,降低了系統整合的耦合度。

下面介紹動態呼叫的具體步驟:

2. 使用 servicedescription 建立和格式化 wsdl 文件檔案。

3. 使用 servicedescriptionimporter 建立客戶端**類。

4. 使用 codedom 動態建立客戶端**類程式集。

5. 利用反射呼叫相關 webservice 方法。

其實與手工建立新增引用步驟一樣,只是在這裡把手動變成了自動而已,動態生成**類,利用反射動態呼叫了方法。

下面看**:**也是摘自博友的,只是作了一些小的修改,

1

///< summary>

2///

動態呼叫web服務

3///

< /summary>

4///

< param name="url">

wsdl服務位址

< /param>

5///

< param name="classname">

類名< /param>

6///

< param name="methodname">

方法名< /param>

7///

< param name="args">

引數< /param>

8///

< returns>< /returns>

9public

object invokewebservice(string url, string classname, string methodname, object

args)

1016

try17

48throw

newexception(sb.tostring());49}

50//

生成**例項,並呼叫方法

51 system.reflection.assembly assembly =cr.compiledassembly;

52 type t = assembly.gettype(@namespace + "

." + classname, true, true

);53

object obj =activator.createinstance(t);

54 system.reflection.methodinfo mi =t.getmethod(methodname);

55return

mi.invoke(obj, args);

56/*

57* propertyinfo propertyinfo = type.getproperty(propertyname);

58* return propertyinfo.getvalue(obj, null);

59*

*/60}61

catch

(exception ex)

6265}66

private

static

string getwsclassname(string

wsurl)

67

單元測試**:

1

///2

///invokewebservice 的測試

3///

4[testmethod()]

5public

void

invokewebservicetest()6;

12object args = a; //

todo: 初始化為適當的值

13object expected = null; //

todo: 初始化為適當的值

14object

actual;

15 actual =target.invokewebservice(url, classname, methodname, args);

16assert.areequal(expected, actual);

17 assert.inconclusive("

驗證此測試方法的正確性。");

18 }

C 動態呼叫WebService

使用示例 trycatch exception ex 類檔案 using system using system.web using system.xml using system.collections using system.net using system.text using system...

C 動態呼叫WebService

原文 c 動態呼叫webservice c 動態webservice呼叫 string public string wstest string suc string wsd.executequery name,str return suc c using system using system.co...

c 動態呼叫 WebService

public class wshelper summary 動態呼叫web服務 summary param name url wsdl服務位址 param param name classname 類名 param param name methodname 方法名 param param name...