如何将 deencey 注入模式与自定义外部 .NET 标准 DLL 一起使用



我是 ASP.NET 核心的新手,所以如果我的问题含糊不清,请提前原谅我。我一直在阅读有关依赖注入模式的信息,我认为它很棒,但我无法找到如何将此模式与使用 .Net Standard 构建的外部 dll 一起使用的示例。我正在 asp.net 核心剃须刀页面中启动一个新项目,我想遵循 DI 模式,但我需要使用一些内部构建的 dll,但我不确定如何。任何帮助将不胜感激。

  1. 添加对项目的引用。
  2. 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();
}
  1. 控制器中的通信
public class AuthorController : Controller
{
    private readonly IAuthorRepository _authorRepository;
    public AuthorController(IAuthorRepository authorRepository)
    {
        _authorRepository = authorRepository;
    }
}
  1. 或解决其他地方
public static class DbInitializer
{
    public static void Seed(IApplicationBuilder app)
    {
        using (var serviceScope = app.ApplicationServices.CreateScope())
        {
            var repository = serviceScope.ServiceProvider.GetService<IAuthorRepository>();
        }
    }
}

所有示例都来自我的 GitHub 存储库,可以在这里找到。随意加星标/克隆/分叉:)

最新更新