Я создал обычную службу .NET asmx. Как перегрузить веб-методы в этой службе?Можно ли перегружать веб-методы?
ответ
WS-I (совместимость с веб-сервисами) не поддерживает перегрузку.
Вы можете сделать это, отключив совместимость WS-I, но я не могу заставить себя предложить это как ответ ;-p. По всем разумным намерениям это (ИМО) правильный ответ. –
Нет. Имена методов веб-сервиса должны быть уникальными.
Да.
Атрибут WebMethod принимает параметр MessageName, который позволяет «перегрузить» метод.
Вы не можете перегружать веб-метод. Когда вы думаете об этом, это имеет смысл, потому что веб-метод разработан, чтобы не полагаться на базовые технологии, такие как языки OO, поскольку он теоретически может работать в таких вещах, как COBOL.
В то время как вы можете написать веб-метод, который выглядит, как он может быть перегружен, вы на самом деле нужно присвоить ему другое имя, например:
[WebMethod]
public void Add(int x, int y)
{
}
[WebMethod(MessageName="AddFloat")]
public void Add(float x, float y)
{
}
Вопрос заключается в том, что компилятор не поймает его, и Сообщение об ошибке не предоставляет вам много информации: «Служба (x) на локальном компьютере началась, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами». – NicVerAZ