a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C# .Net動態調用webService實現思路及代碼

2024-09-07 17:05:33
字體:
來源:轉載
供稿:網友
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.IO;
using System.Web.Services.Description;
using System.CodeDom;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
namespace HTTPS
{
public class WSHelper
{
/// < summary>
/// 動態調用web服務
/// < /summary>
/// < param name="url">WSDL服務地址< /param>
/// < param name="methodname">方法名< /param>
/// < param name="args">參數< /param>
/// < returns>< /returns>
public static object InvokeWebService(string url, string methodname, object[] args)
{
return WSHelper.InvokeWebService(url, null, methodname, args);
}
/// < 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)
{
string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
if ((classname == null) || (classname == ""))
{
classname = WSHelper.GetWsClassName(url);
}
try
{ //獲取WSDL
WebClient wc = new WebClient();
Stream stream = wc.OpenRead(url + "?WSDL");
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);
CSharpCodeProvider icc = new CSharpCodeProvider();
//設定編譯參數
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)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (System.CodeDom.Compiler.CompilerError ce in cr.Errors)
{
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
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);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区三区在线看 | 国产亚洲一区二区不卡 | 欧美成人一区二区 | 日本99精品 | 久久久久久久久蜜桃 | 国产成人精品一区二区三区 | 日韩精品一区二区三区中文在线 | 欧美一区二区激情三区 | 久久亚洲精品中文字幕 | 成人在线国产 | 日本一区二区成人 | 久国久产久精永久网页 | 一本一道久久a久久精品综合蜜臀 | 久草一区| 精品国产乱码久久久久久蜜臀 | 成人毛片在线观看 | 欧美日韩在线播放 | 黄色手机在线观看 | 欧美精品久 | 欧美日韩精品一区二区三区 | 欧美成人免费在线视频 | xvideos视频 | 国产传媒在线视频 | 亚州综合一区 | 亚洲精品v | 黄色片在线免费观看 | 日韩www. | 欧美综合色 | 91一区在线 | 7777av| jizz在线播放| 久久免费看 | 国产在线视频一区 | 国产在线看h | 欧美午夜视频 | 91视频在线免费观看 | 99精品国产高清在线观看 | 精品国产aⅴ一区二区 | 黄色成人在线播放 | 亚洲精品一二三 | 黄色影片网址 |