0

オプションのパラメーターを使用して webmethod を作成します。

[WebMethod]
  public void EmailSend(string from, string to, string cc = null, string bcc = null, string replyToList = null, string subject = null, string body = null, bool isBodyHtml = false , string[] attachmentNames = null, byte[][] attachmentContents = null)
    {
     .....
    }

クライアント側アプリケーションでこのメソッドを呼び出します

 EmailServiceManagement.EmailService es = new EmailServiceManagement.EmailService();
 es.EmailSend(from, to,null,null,null,subject,body,true,attName,att); //this works

しかし

es.EmailSend(from,to); // this isn't working. According to c# optional parameter syntax it must work.

私は何を間違っていますか?

4

1 に答える 1

2

WebMethods にオプションのパラメーターを指定することはできません。あなたができることは、次のようなオーバーロードされたメソッドを持つことです:

[WebMethod(MessageName="Test")]
public string GenerateMessage(string firstName)
{
   return string.Concat("Hi ", firstName);
}

[WebMethod(MessageName="AnotherTest")]
public string GenerateMessage(string firstName, string lastName)
{
   return string.Format("Hi {0} {1}", firstName, lastName);
}

この WebMethod をどのように操作しているか正確にはわかりませんが、非常に多くのパラメーターがあるということは、おそらく次のようなオブジェクトにそれらをグループ化できることを示しています。

[WebMethod]
public void EmailSend(MessageParameters messageParams)
{
     .....
}
于 2013-05-21T07:29:31.480 に答える