Использование Ninject в качестве моего IDependencyResolver имеет серьезные проблемы?Пожалуйста помогите - PullRequest
0 голосов
/ 07 декабря 2011

Я создал NinjectResolver, который реализует IDependencyResolver.В global.asax я устанавливаю этого парня в качестве моего DependencyResolver.

Однако при этом я теряю все свои атрибуты черты данных при проверке.И это также портит всю пейджинговую часть на стороне клиента, сортируя по моей сетке (используя MVC-расширения Telerik).

Вот класс:

public class NinjectResolver : IDependencyResolver
{
    private readonly IKernel _kernel;

    public IKernel Kernel
    {
        get
        {
            return _kernel;
        }
    }

    public NinjectResolver(params Ninject.Modules.INinjectModule[] modules)
    {
        _kernel = new StandardKernel(modules);
    }

    public object GetService(Type serviceType)
    {
        return _kernel.TryGet(serviceType);
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        return _kernel.GetAll(serviceType);
    }

    public IBindingToSyntax<T> Bind<T>()
    {
        return _kernel.Bind<T>();
    }
}

И вот мое приложение запускается в глобальном масштабе.asax ...

    protected void Application_Start()
    {
        .... omitted

        var modules = new Ninject.Modules.INinjectModule[] 
        { 
            new PersistenceModule()
        };

        var dependencyResolver = new NinjectResolver(modules);
        DependencyResolver.SetResolver(dependencyResolver);

        .... omitted
    }

Если я закомментирую строку SetResolver, все мои проверки на стороне клиента работают так же, как сортировка, подкачка, фильтрация и т. д. на стороне клиента. К сожалению, я теряю все своиКонструктор инъекций.

Любая помощь приветствуется, пожалуйста.Не уверен, что мне нужно добавить больше модулей для работы на стороне клиента?

Пожалуйста, сообщите.

1 Ответ

2 голосов
/ 07 декабря 2011

Почему бы вам не использовать https://github.com/ninject/ninject.web.mvc/wiki/MVC3 вместо написания собственной реализации?Он широко используется и доказал свою эффективность во многих проектах.

...