У меня есть вопрос относительно того, как именно эта вещь работает.ExceptionHandler в C# WebAPI
public class GlobalExceptionHandler: ExceptionHandler
{
private string _pvtMsg;
public override void handle(ExceptionHandlerContext context)
{
//few if else conditions
if()
{
}
else if
{
_pvtMsg = "some value";
}
context.Result="Some random value depending upon if else execution";
}
}
Теперь, когда _pvtMsg
устанавливается после того, всякий раз, когда происходит исключение всегда имеет то же самое значение, как и раньше.
ли, когда я установил _pvtMsg = "a";
в состоянии else if
, в следующий раз, когда возникает ошибка _pvtMsg
еще значение "a"
?
Есть ли только один экземпляр handler
, доступный на протяжении всего срока службы моего приложения, и, следовательно, это происходит? Или есть другие причины? Любые документы для справки будут оценены.
Btw: этот обработчик зарегистрирован с использованием метода Register
WebApiConfig
.
config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
Есть ли другой способ иметь новое значение для _pvtMsg для каждого исключения? Один из способов - сбросить значение в методе Handle. но кроме этого есть какой-то способ? – Mandy
Код немного * пуст *, поэтому я понятия не имею, что вы запланировали для '_pvtMsg'. –
В _pvtMsg, я добавляю какое-то пользовательское сообщение в особых случаях исключения. это оно. – Mandy