Добрый день! Решил разобраться с событийной моделью и заткнулся на первой же проблеме. Если происходит ошибка при работе стратегии как узнать какая?
Делаю своего наследника:
public class RobotStrategy : Strategy
далее...
protected override void OnRunning()
{
// подписываемся на события
this.When(this.Error())
.Do(OnSysError)
.MakePeriodical();
...
}
void OnSysError()
{
// какая ошибка???
}
Нигде в документации ничего не написано как обрабатывать ошибки. Примера тоже нет.
Comentários (4)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
public class RobotStrategy : Strategy
Это сообщение вы до этого вывели в лог. Данное правило срабатывает когда состояние переходит в StrategyErrorStates.Error. А это происходит если вызван метод AddErrorLog или AddLog(StrategyErrorStates.Error, ...)
Немного изменим вопрос:
protected void Process() { //тут создаем BatchStrategy
}
private void BatchStopped() { //как тут узнать какая стратегия завершилась? }
Начиная с версии 3.2.2 это работает.
Если необходимо узнать про то какая конкретно стратегия из BatchStrategy вызвала остановку - добавили feature request.
public class RobotStrategy : Strategy
this.Error отслеживает состояние свойства. Проще просто переопределить OnError.