我希望能够注入一个实现DefaultService
的{{1}}对象。
例如,如果我有一个构造函数:
IService<in T>
但是我没有开发public FunClient(IDefaultService<FunModel> service) { ... }
,我希望能够告诉Autofac不抛出异常,而是解析/注入FunService : IService<FunModel>
实例。
答案 0 :(得分:2)
您正在寻找的是开放通用类型的注册。您必须为IDefaultService<T>
创建Null Object实施,并使用RegisterGeneric
进行注册,如下所示:
public class NullDefaultService<T> : IDefaultService<T> {
// Implement methods here
}
// registration
builder.RegisterGeneric(typeof(NullDefaultService<>))
.As(typeof(IDefaultService<>));