上方廣告

2009年2月6日 星期五

WebService 使用多載

WebService預設是不能使用多載,但只要使用WebMethod的屬性MessageName給予不同的名稱並修改 WebServiceBinding (預設為BasicProfile1_1) ,就可以正常使用了。

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
public class ServiceUserAdmin : System.Web.Services.WebService
{
  [WebMethod(MessageName = "SingleStrSQL")]//T-SQL查詢
  [SoapHeader("soapSet")]
  public DataSet sqlDs(string strSQL)
  {
    if (ValidUser() == false) return myErrDs;
    try
    {
      return objSql.RunDataSet(strSQL);
    }
    catch (Exception ex) { throw ex; }
  }


  [WebMethod(MessageName = "IncoludConnectionString")]//T-SQL查詢變更資料庫連線
  [SoapHeader("soapSet")]
  public DataSet sqlDs(string strSQL, string myConnectionString)
  {
    if (ValidUser() == false) return myErrDs;
    try
    {
      return objSql.RunDataSet(strSQL, myConnectionString);
    }
    catch (Exception ex) { throw ex; }
  }
}