Краткий ответ: вы не можете использовать передачу по ссылке (с ref
/ out
ключевыми словами) для параметров в методе, помеченном атрибутом [WebMethod]
.
Вот причина, по которойобъясняет, почему &
добавлено для второго System.String
типа в сообщении об исключении, взято из этой ссылки :
Ключом для декодирования источника этого сообщения является "&"находится в конце текста.Это синтаксис, используемый при передаче параметра в функцию BYREF (By-Reference) и используемый в C-Notation для указания имени переменной «pass the AddressOf».Даже если вы закодировали WebService в C # / VB.NET, Microsoft преобразует / компилирует его в нотацию типа C, когда выводит его в виде сборки.
Следовательно, все параметры внутри метода, который использует *Атрибут 1016 * должен использовать передачу по значению, удаляя ключевое слово ref
:
[WebMethod]
public string CheckService(string name, string msg)
{
// return string here
}