У меня проблема с использованием расширения перехвата Ninject с DynamicProxy2.По сути, создаются два экземпляра моего объекта привязки.Моя привязка:
this.Bind<TestInterface1>().ToSelf().Intercept().With(new ActionInterceptor(i => Console.WriteLine("In interceptor")));
Первый экземпляр создается как часть обычной процедуры разрешения.Второй экземпляр создается как часть создания прокси, в частности в DynamicProxy3ProxyFactory.cs .
reference.Instance = this.generator.CreateClassProxy(targetType, ProxyOptions, parameters, wrapper);
Второй экземпляр, кажется, заменяет первый в контексте Ninject (хотя яне уверен на 100% в этом), так что можно поверить, что все в порядке.Первый экземпляр будет только на наносекунду.К сожалению, мои конструкторы не настолько «чисты», и запуск его дважды вызывает некоторую путаницу.Поскольку строительство второго экземпляра ведется в Касле, я не знаю, есть ли способ обойти это, но любой совет будет признателен (переписать конструкторы, которые были продуманы и сбиты :)).