Как использовать шаблон внедрения зависимостей с пользовательскими внешними стандартными библиотеками .NET - PullRequest
0 голосов
/ 01 февраля 2019

Я новичок в ASP.NET Core, поэтому заранее извините, если у меня неясный вопрос.Я читал о шаблоне внедрения зависимостей и думаю, что это здорово, но я не смог найти пример того, как использовать этот шаблон с внешними библиотеками, созданными с использованием .Net Standard.Я начинаю новый проект на основных страницах бритвы asp.net, и я хотел бы следовать шаблону DI, но мне нужно использовать несколько встроенных dll, и я не уверен, как.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 февраля 2019
  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();
}
Comsume в вашем контроллере
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, можно найти здесь .Не стесняйтесь, чтобы звезда / клон / вилка:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...