0
У меня есть класс для перехвата DataException, который реализует интерфейс IInterceptor, однако метод Intercept не вызывается.Замок Виндзор не перехватывает DataException
Я регистрируя класс перехватчика так:
container.Register(Component.For<DatabaseErrorInterceptor>().LifestyleTransient());
Вот класс перехватчик:
public class DatabaseErrorInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
try
{
invocation.Proceed();
}
catch (DataException exc)
{
throw this.MapearExcecao(excecao);
}
}
private BusinessRuleException HandleException(DataException databaseError)
{
// ...
return new BusinessRuleException(...);
}
}
http://stackoverflow.com/a/2575625/43846 может помочь – stuartd
Как зарегистрировать исключение? Исключение составляет интерфейс. –
Вам необходимо вызвать Interceptors() в службе базы данных, чтобы вызвать перехватчик, вам не нужно регистрировать исключение –
stuartd