所以我有一个接口(interface)和类:
public interface IMyInterface<T> where T : ISomeEntity {}
public class MyClass<T> : IMyInterface<T>
where T : ISomeEntity {}
我将有一些需要它的类(class):
public class SomeClass : ISomeClass
{
public SomeClass (IMyInterface<AuditEntity> myInterface) {}
}
我已经做了各种各样的事情来让它注册开放的通用接口(interface)和类,但没有运气。
我只想说:
container.RegisterType(typeof(MyClass<>)).As(typeof(IMyInterface<>));
如果我必须经历并明确执行以下操作,那将会很烦人:
container.RegisterType<MyClass<AuditEntity>>().As<IMyInterface<AuditEntity>>();
这不应该是微不足道的吗?
最佳答案
您必须使用 RegisterGeneric
方法,请参阅 Registration Concepts - Open Generic Components
这样的事情应该有效:
builder.RegisterGeneric(typeof(MyClass<>)).As(typeof(IMyInterface<>));
关于c# - Autofac Resolve Open Generic Interface with Open Generic Class,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31588094/