我创建了一个实现 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 行,我的所有客户端验证以及我的客户端网格排序、分页、过滤等都可以正常工作。不幸的是,我丢失了所有构造函数注入。
任何帮助表示赞赏。不确定我是否必须添加更多模块才能使客户端操作正常工作?
请指教。