我是 ASP.NET 核心的新手,所以如果我的问题含糊不清,请提前原谅我。我一直在阅读有关依赖注入模式的信息,我认为它很棒,但我无法找到如何将此模式与使用 .Net Standard 构建的外部 dll 一起使用的示例。我正在 asp.net 核心剃须刀页面中启动一个新项目,我想遵循 DI 模式,但我需要使用一些内部构建的 dll,但我不确定如何。任何帮助将不胜感激。
- 添加对项目的引用。
- 在
Startup
类中注册类型/实例
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<LibraryDbContext>(options => options.UseInMemoryDatabase("LibraryContext"));
services.AddTransient<ICustomerRepository, CustomerRepository>();
services.AddTransient<IAuthorRepository, AuthorRepository>();
services.AddTransient<IBookRepository, BookRepository>();
services.AddMvc();
}
- 控制器中的通信
public class AuthorController : Controller
{
private readonly IAuthorRepository _authorRepository;
public AuthorController(IAuthorRepository authorRepository)
{
_authorRepository = authorRepository;
}
}
- 或解决其他地方
public static class DbInitializer
{
public static void Seed(IApplicationBuilder app)
{
using (var serviceScope = app.ApplicationServices.CreateScope())
{
var repository = serviceScope.ServiceProvider.GetService<IAuthorRepository>();
}
}
}
所有示例都来自我的 GitHub 存储库,可以在这里找到。随意加星标/克隆/分叉:)