Инициализировать класс как часть DI - PullRequest
0 голосов
/ 22 января 2019

Я пишу новое базовое приложение ASP.NET и использую встроенную DI Framework.

У меня есть служба, которая мне нужна для запуска метода Initaliaze как части DI - возможно ли это с помощью встроенного DI Framework?

Я делал что-то подобное раньше с Simple Injector, используя следующий код:

container.RegisterInitializer<MyService>(instance =>
{
    instance.Initialize("Parameter to Initialize method");
});

Я регистрирую большую часть своей службы в .NET Core, как показано ниже:

public static void RegisterServiceDependencies(this IServiceCollection services)
{
    services.AddTransient<IServiceA, ServiceA>();
    services.AddTransient<IServiceB, ServiceB>();
    //etc etc

Однако, глядя на intellisense служб, я не вижу ничего подобного RegisterInitializer.

1 Ответ

0 голосов
/ 22 января 2019

Как то так?

public static void RegisterServiceDependencies(this IServiceCollection services)
{
            services.AddTransient(sp =>
            {
                var instance = sp.GetService<MyClass>(); /* depends on your type */

                instance.Initialize("Parameter to Initialize method");
                return instance;
            });
});
...