私はASP.NE4 MVC3を学習しています。私はNinjectDependencyResolverクラスを作成しましたが、ServiceLocatorクラスの実装方法について知りたいと思います。現在、このエラーが発生します。 "SportsStore.WebUI.Infrastructure.NinjectDependencyResolver型は、Microsoft.Practices.ServiceLocation.IServiceLocator。 パラメータ名:commonServiceLocator"を実装していないようです。ninject depencyリゾルバとサービスロケータの実装
Global.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
RegisterDependencyResolver();
//ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
}
private void RegisterDependencyResolver()
{
var kernel = new StandardKernel();
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
NinjectDepencyResolver cs
public class NinjectDependencyResolver
{
private readonly IKernel _kernel;
public NinjectDependencyResolver(IKernel kernel)
{
_kernel = kernel;
}
public object GetService(Type serviceType)
{
return _kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
try
{
return _kernel.GetAll(serviceType);
}
catch (Exception)
{
return new List<object>();
}
}
アクティベーションパス:依存IProductRepositoryの 2)インジェクションタイプProductController 1のコンストラクタのパラメータproductRepositoryへ)ProductControllerへのリクエスト 提案: 1)プロバイダが作成リクエストを正しく処理することを確認してください。 – MasterP
このエラーが原因です。 IController GetControllerInstance(RequestContext requestContext、type controllerType) { return controllerType == null ? null :(IController)ninjectKernel.Get(controllerType); } – MasterP
問題は解決したと言いますか?もしあなたがもっと説明できなければ? –