У меня есть приложение, которое работало нормально, который использует Windsor для IoC. Я хочу регистрировать вызовы методов, параметры и время выполнения всех вызовов, сделанных для компонентов, созданных Windsor, поэтому я реализовал LoggingInterceptor, который реализует IInterceptor, который содержит:
Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
invocation.Proceed(); // EXCEPTION IS THROWN HERE
sw.Stop();
Logger.Debug(.....
Теперь операции, которые ранее работали нормально, генерируют исключения VerificationException со следующим сообщением:
Метод Repositories.RepositoryBase.GetAll: аргумент типа «ET» нарушает ограничение параметра типа «ET».
Подпись метода:
public IList<ET> GetAll<ET>() where ET : EntityBase2, IEntity2
(где EntityBase2 и IEntity2 из LLBLGenPro)
Вызывающий метод выглядит следующим образом:
public IList<ServerEntity> GetServers()
{
return GetRepository<IServerRepository>().GetAll<ServerEntity>();
}
(где GetRepository <> () - это просто оболочка для ServiceLocator)
Если я закомментирую перехватчик из конфигурации замка, все снова будет работать нормально.
Почему это происходит сейчас, и есть ли исправление, чтобы я мог использовать свой перехватчик регистрации?
спасибо