0

私はIDependencyResolverを実装するNinjectResolverを作成しました。 global.asaxでは、私はこの男をDependencyResolverとして設定しています。IDependencyResolverとしてNinjectを使用すると深刻な問題がありますか?助けてください

しかし、そうすることで、私はvalidaitonですべてのデータダッシュ属性を失います。また、クライアント側のページング全体を網羅しています(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の行をコメントアウトした場合、すべての私のクライアント側の検証として働きます私のクライアント側のグリッドソート、ページング、フィルタリングなどがあります。残念ながら、私はすべてのコンストラクタインジェクションを失います。

ご了承ください。クライアント側の操作のためにモジュールを追加する必要があるかどうかは不明です。

お知らせください。

答えて

2

独自の実装を書く代わりにhttps://github.com/ninject/ninject.web.mvc/wiki/MVC3を使用しないのはなぜですか?これは広く使用され、多くのプロジェクトで動作することが証明されています。

+0

甘い。それがトリックでした。何らかの理由で、検証プロバイダなどがデフォルトでNinjectからすぐに外れていると思っていました。非常に感謝し、コードは非常にきれいです。ありがとう! – Forest

関連する問題