C#動態調用webservice 不加web引用
时间:2011-05-26 来源:Snowfun
1.已知webservice路徑http://hsappsuat01/sendmail/General.asmx 中有一個方法NTAcount,返回值為string
2.web.config添加以下語句
<appSettings>
<add key="WSServer1" value="http://hsappsuat01/sendmail/General.asmx/>
</appSettings>
3.在測試網站裡添加一個類WebServiceFactory.cs,代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Diagnostics;
using System.Xml.Serialization;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;
/// <summary>
/// Summary description for WebServiceFactory
/// </summary>
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name = "WebServiceFactorySoap", Namespace = "http://tempuri.org/")]
public class WebServiceFactory : System.Web.Services.Protocols.SoapHttpClientProtocol
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/NTAccount",
RequestNamespace = "http://tempuri.org/",
ResponseNamespace = "http://tempuri.org/",
Use = System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string NTAccount() //WebService.asmx中有的一個方法NTAccount
{
this.Url = ConfigurationManager.AppSettings["WSServer1"];
object[] result = this.Invoke("NTAccount", new object[0]);
return ((string)(result[0]));
}
}
4.調用時實例化這個類後調用方法
WebServiceFactory wsf = new WebServiceFactory();
txtNT.Text = wsf.NTAccount();
/Files/Snowfun/TestWebServices.zip