0

我创建了一个实现 IDependencyResolver 的 NinjectResolver。在 global.asax 中,我将这个人设置为我的 DependencyResolver。

但是,这样做时,我在验证时丢失了所有数据破折号属性。而且它还弄乱了整个客户端分页,在我的网格上排序(使用 Telerik 的 MVC 扩展)。

这是课程:

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>();
    }
}

这是我的应用程序从 global.asax 开始...

    protected void Application_Start()
    {
        .... omitted

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

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

        .... omitted
    }

如果我注释掉 SetResolver 行,我的所有客户端验证以及我的客户端网格排序、分页、过滤等都可以正常工作。不幸的是,我丢失了所有构造函数注入。

任何帮助表示赞赏。不确定我是否必须添加更多模块才能使客户端操作正常工作?

请指教。

4

1 回答 1

2

为什么不使用https://github.com/ninject/ninject.web.mvc/wiki/MVC3而不是编写自己的实现?它被广泛使用并被证明可以在许多项目中工作。

于 2011-12-07T09:57:00.087 回答