Имеется следующая проблема
Допустим имеется класс-правило MyStrategyRuleClass унаследованное от StrategyRule
если использовать this.When(this.MayStrategyRule).Do<AnyType>((e) => {})
и в классе MyStrategyRuleClass при вызове base.Activate(NOTAnyType) передать по ошибке другой тип,
то никаких ошибок не последут,
выполнится override метод MyStrategyRuleClass.DisposeManaged() и правило перестанет работать
Думаю стоит должным образом обрабатывать подобную ошибку в реализации base.Activate() и Do(), чтобы генерировалось исключение