将类初始化为DI的一部分

时间:2019-01-22 10:06:29

标签: c# asp.net-core dependency-injection .net-core

我正在编写一个新的ASP.NET Core应用程序,并且正在使用内置的DI框架。

我有一项服务,我需要运行Initaliaze方法作为DI的一部分-内置的框架DI可以做到吗?

之前,我使用以下代码在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

但是,从智能感知的角度来看,我看不到RegisterInitializer之类的东西。

1 个答案:

答案 0 :(得分:1)

像这样吗?

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;
            });
});