我有一个通用类 Logger<TProvider>
,其中 TProvider
必须实现接口 ILogProvider
。我想使用 Autofac 配置依赖注入。
这个类还有一个构造函数:
public Logger(LogType loggerType)
目前使用方式如下所示:
var logger = new Logger<Log4NetLogProvider>(LogType.CMS);
我想知道这个是否可以进行依赖注入,或者由于需要类型/构造函数参数而不可能实现?
我知道有一个RegisterGeneric方法,例如:
builder.RegisterGeneric(typeof(Logger<>)).AsSelf()
我想知道如何告诉Autofac传入哪个TProvider
,并提供构造函数参数LogType
?或者这不适合依赖注入吗?
public class Logger : IFileLogger, IKenticoLogger, IKenticoAndFileLogger, ISmtpLogger
,这有点丑陋。是否有一种方法可以给它一个“基本”接口,例如ILogger
,每个接口都基于它? - DGibbs