У меня есть класс, который я использую для загрузки. как часть создания объекта, которую я использую по соглашению для привязки к интерфейсам.Ошибка выброса перехватчика Ninject. Динамический прокси
Все работает ОК, пока не попытаюсь добавить перехватчик.
public class ContainerBootstrapper : IDisposable
{
StandardKernel _c;
public ContainerBootstrapper()
{
_c =new StandardKernel();
_c.Bind(b => b.FromAssembliesMatching("Facade*.*").SelectAllClasses().BindDefaultInterfaces());
_c.Bind(b => b.FromAssembliesMatching("Object*.*").SelectAllClasses().BindDefaultInterfaces());
_c.Bind(b => b.FromAssembliesMatching("Logger*.*").SelectAllClasses().BindDefaultInterfaces());
//even using the built in ActionInterceptor like this:
_c.Intercept(c => true)
.With(new ActionInterceptor(invocation =>
Console.Write(invocation.Request.Method.Name)));
Когда эта линия ударил, я получаю ошибку - Ошибка при загрузке Ninject компонент IAdviceFactory Нет такой компонент не был зарегистрирован в контейнере компонентов ядра.
Предложения: 1) Если вы создали пользовательский подкласс для KernelBase, убедитесь, что у вас правильно реализован метод AddComponents(). 2) Убедитесь, что вы не удалили компонент из контейнера по вызову RemoveAll(). 3) Убедитесь, что вы случайно не создали несколько ядер.
У меня есть на вершине:
using Ninject.Extensions.Conventions;
using Ninject.Extensions.Interception.Injection.Dynamic;
using Ninject.Extensions.Interception.Infrastructure.Language;
using Ninject.Extensions.Interception;
и использовали NuGet для пакетов. Пробовал как динамические прокси, так и LinFu. Оба дали ту же ошибку.
У кого-нибудь есть идеи попробовать? Спасибо заранее.