我正在编写一个新的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
之类的东西。
答案 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;
});
});