Я создаю веб-сервис с использованием C # asmx. Я хочу выполнить свою собственную проверку ввода внутри каждого веб-метода. Когда я писал код, я понял, что сама asmx проверяет ввод перед тем, как ввод попадет в веб-метод, что не позволяет мне выполнять проверку самостоятельно. Позвольте мне показать вам, что я имею в виду.
Скажем, у меня есть такой веб-метод:
[WebMethod]
public string method(int param1)
{
Validate(param1)
}
Если человек, вызывающий method
, передаст a для param1
, то сам asmx сгенерирует исключение, прежде чем я смогу выполнить свою собственную проверку. (Выдает исключение, потому что a не относится к типу int
.)
Теперь я могу просто сделать param1
строкой, тогда все, что пользователь введет в param1
, будет действительным в соответствии с проверкой asmx. Но это нежелательно по причинам, о которых я здесь не буду говорить.
Есть ли способ достичь того, чего я пытаюсь достичь, не задавая все параметры типа string
? Если нет, то это не конец света, так как я могу заставить его работать, но я хотел бы знать, есть ли способ.
P.S. Я знаю, что asmx устарел, но моя компания сказала мне использовать его.
EDIT:
Я скажу еще одну вещь, чтобы помочь вам решить мою проблему. Я хочу, чтобы мой веб-сервис возвращал строку json с определенной структурой во всех случаях, даже если ввод неверен. В случае, если ввод недопустим, должна быть возвращена строка json, объясняющая проблему. Но я не могу этого сделать в случае неверного ввода, так как asmx выдал исключение, прежде чем запрос попадет в мой веб-метод.
Я понимаю, почему asmx является наследием. Тот факт, что он не позволяет вам контролировать проверку ввода, просто смешен.