2017-02-11 31 views
-1

私はasp mvcで光注入を使用しています。未解決の依存関係[クラスサービス層]

このコードをasp mvcのglobal.asaxで使用します。

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
     var container = new ServiceContainer(); 
     container.RegisterControllers(); 
     container.RegisterControllers(typeof(Areas.Admin.AdminAreaRegistration).Assembly); 
     container.Register<INewsService, NewsService>(new PerScopeLifetime()); 
     container.Register<ICategoryService, CategoryService>(new PerScopeLifetime()); 
     container.EnableMvc(); 
    } 

とコントローラで:

private readonly INewsService _newsservice; 
    private readonly ICategoryService _categoryservice; 
    public AdminController(INewsService newsservice, ICategoryService categoryservice) 
    { 
     _newsservice = newsservice; 
     _categoryservice = categoryservice; 
    } 

が、それは私にこのエラーを示しています。

未解決の依存関係[ターゲットタイプ:DA.Service.Service.NewsService]、[パラメータを:リポジトリ(DA.Data.Repository.Repository 1[DA.Data.Domain.News])], [Requested dependency: ServiceType:DA.Data.Repository.Repository 1 [DA.Data.Domain.News]、ServiceName:]

何が問題なのですか?

答えて

0

明らかに、DA.Data.Domain.Newsの実装についてUnityに伝える必要があります。

NewsServiceNewsに依存し、暗黙的に解決できません(見つからないか、またはそれ自体にいくつかの依存関係があります)。

また、MVCでUnityを間違って使用しています。 Unity for MVC NuGetを使用してください。

+0

この問題を解決する方法はありますか? – Kianoush

+0

「アンティティーを使用する以外は、この問題を解決する方法はありますか?」 ... 何? –

+0

ではなく、別の方法で統一を使用していますか? – Kianoush

0

INewsServiceとICategoryServiceの両方に、コンテナに登録されていない依存関係(リポジトリ)があるとエラーが発生しました。オブジェクトグラフ全体を登録する必要があります。あなたの登録は、次のようなものに見えます:

var container = new ServiceContainer(); 
    container.RegisterControllers(); 
    container.RegisterControllers(typeof(Areas.Admin.AdminAreaRegistration).Assembly); 
    container.Register<INewsService, NewsService>(new PerScopeLifetime()); 
    container.Register<IRepository<News>, Repository<News>>(new PerRequestLifetime()); 
    container.Register<ICategoryService, CategoryService>(new PerScopeLifetime()); 
    container.Register<IRepository<Category>, Repository<Category>>(new PerRequestLifetime()); 
    container.EnableMvc(); 
+0

thanx but stiilエラーが表示されます – Kianoush

+0

あなたの質問を編集し、あなたが現在入手しているエラーメッセージを投稿してください(画像ではなくテキストとして)。 – NightOwl888

+0

私は質問 – Kianoush

関連する問題