0

私はEFコアの汎用リポジトリパターンに取り組んでおり、私のリポジトリがAsp.Netコアに依存する問題を解決しています。私はここに、依存関係を解決することができています使用してUnityは私のコードです:Asp.Netコアの依存関係を解決する

ユニティを使用して

//here is the Line I Cant Resolve 
.RegisterType<IRepositoryAsync<Movie>, Repository<Movie>>() 

.RegisterType<IMovieService, MovieService>() 

Asp.Netコア

services.AddScoped<IRepositoryAsync<Movie>, Repository<Movie>>(); 

services.AddTransient<IMovieService, MovieService>(); 

と、私はエラー

を取得しています
InvalidOperationException: Unable to resolve service for type 'Repository.Pattern.DataContext.IDataContextAsync' while attempting to activate 'Repository.Pattern.Core.Repository`1[Sample.Models.Movie]'. 

Can anyon eは、ネイティブ依存性インジェクションがAsp.Netコアでどのように動作するかについての明確な文書を持っています。

+1

まあ 'IDataContextAsync'何でここにいるのですか? – DavidG

+0

あなたは私にClue mateを与えました! :) –

+6

例外メッセージにヒントがあったので、人々がそれらを無視する理由を理解できません! – DavidG

答えて

1

Microsoft.Extensions.DependencyInjectionは、解決されたサービスに依存関係を注入するコンストラクタインジェクションを使用します。サービス・ロケーターは、要求されたサービスを生成するためにこれらの依存関係を構築する方法を知る必要があります。

非常に基本的に、IMyServiceをデフォルトコンストラクタIMyService(IMyOtherService otherService)で解決したい場合は、IMyOtherServiceも登録する必要があります。

IRepositoryAsync<Movie>を解決するには、Repository.Pattern.DataContext.IDataContextAsyncを登録する必要があります。

包括的なドキュメントはhttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection

関連する問題