解决Asp.Net核心中的依赖关系

时间:2017-05-19 12:17:23

标签: c# asp.net-mvc entity-framework asp.net-core asp.net-core-mvc

我正在研究EF Core上的通用存储库模式,我在解决我的存储库对Asp.Net Core的依赖性时遇到了问题。使用Unity我能解决这里的依赖是我的代码:

使用Unity

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

.RegisterType<IMovieService, MovieService>()

Asp.Net Core

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]'.

任何人都可以清楚地了解Native Dependency Injection如何在Asp.Net Core上运行

1 个答案:

答案 0 :(得分:1)

Microsoft.Extensions.DependencyInjection使用构造函数注入将依赖项注入已解析的服务。您的服务定位器需要知道如何构造这些依赖项以生成所请求的服务。

非常基本的是,如果您想使用IMyService的默认构造函数解析IMyService(IMyOtherService otherService),您还需要注册IMyOtherService

在您的示例中,您需要注册Repository.Pattern.DataContext.IDataContextAsync才能解析IRepositoryAsync<Movie>

综合文档在https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection