使用ServiceCollection注册单例时获取类类型?

时间:2018-08-31 21:32:34

标签: c# .net

我有一个类声明,

ConsoleLogger : ILogger

它需要传递给构造函数的类型。

public ConsoleLogger(Type classType)

因此,当将此行更改为DI时,会有点困难。

private readonly ILogger Logger = new ConsoleLogger(GetType());

如果我想像这样将其注册到ServiceCollection,是否可以传递类型?

sc.AddSingleton<ILogger, ConsoleLogger>(provider =>
    new ConsoleLogger(GetType()) // not GetType() but the type  you're injecting into.
)

所以,如果我有一个带有这样的构造函数的类,

public SomeClass(ILogger logger){}

应该是这样吗?

sc.AddSingleton<ILogger, ConsoleLogger>(provider =>
    new ConsoleLogger(typeof(SomeClass))
)

如果我可以让它动态地工作,那会很好吗?

0 个答案:

没有答案