Добрый день! Решил разобраться с событийной моделью и заткнулся на первой же проблеме. Если происходит ошибка при работе стратегии как узнать какая?
Делаю своего наследника:
public class RobotStrategy : Strategy
далее...
protected override void OnRunning()
{
// подписываемся на события
this.When(this.Error())
.Do(OnSysError)
.MakePeriodical();
...
}
void OnSysError()
{
// какая ошибка???
}
Нигде в документации ничего не написано как обрабатывать ошибки. Примера тоже нет.
Kommentare (4)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
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.