我有这种情况...
在项目Providers
中,我已经定义了此类
public class MyLogProvider<T> : IMyProvider<T>
where T : ILoggable
ILoggable
是一个简单的接口,没有实现方法。
然后,我有一个Web项目,其中包含一些实现接口ILoggable
的MVC控制器。例如
public class MyController : Controller, ILoggable
{
...
}
最后,我有一个项目IoC
,该项目由Web项目引用,并且引用了项目Providers
。因此,在IoC
内部,我无法使用MyController
类。
我需要进行这种注册:
builder.RegisterType<MyLogProvider<MyController>>()
.As<IMyProvider<MyController>>()
.InstancePerRequest();
但是很明显,我不能那样做...
我也尝试过
builder.RegisterGeneric(typeof(Log4NetProvider<>)).As(typeof(Log4NetProvider<>));
而且我一直在寻找使用
builder.RegisterAssemblyTypes(assemblies)
但没有成功。...有帮助吗?
谢谢...
builder.RegisterGeneric(typeof(MyProvider<>)).As(typeof(IMyProvider<>));
我假设接口是注入控制器的东西
public class MyController : Controller, ILoggable { public MyController (IMyProvider<MyController> provider) { //... } }