c# - Метод веб-службы с дополнительными параметрами




.net web-services (2)

Возможный дубликат:
Могу ли я иметь необязательный параметр для веб-службы ASP.NET SOAP

Я попытался оглянуться, но я действительно не могу найти правильное решение для того, что я хочу сделать. Извините за повторение, так как я знаю, что это было задано раньше. У меня есть метод веб-службы, в котором я хочу иметь необязательный параметр, например:

public void MyMethod(int a, int b, int c = -3)

Я уже знаю, что не могу использовать параметры с нулевым значением, поэтому я просто пытаюсь использовать значение по умолчанию. Проблема в том, что когда я вызываю этот метод без предоставления аргумента c, все равно получается исключение. Где-то я должен указать, что это действительно факультативно?

Thanksю


Вы можете достичь дополнительных параметров с помощью перегрузок и использования свойства MessageName.

[WebMethod(MessageName = "MyMethodDefault")]
public void MyMethod(int a, int b)
{
      MyMethod( a, b, -3);
}

[WebMethod(MessageName = "MyMethod")]
public void MyMethod(int a, int b, int c)

Чтобы это сработало, вам также может потребоваться изменить

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 

в

[WebServiceBinding(ConformsTo = WsiProfiles.None)] 

если вы еще этого не сделали, поскольку WS-I Basic Profile v1.1 не допускает перегрузки


Использование методов перегрузки:

[WebMethod(MessageName = "MyMethod1")]
public void MyMethod(int a, int b)
{
    return MyMethod(a, b, -3);
}

[WebMethod(MessageName = "MyMethod2")]
public void MyMethod(int a, int b, int c)
{
}




optional-parameters