AutoFac文檔
目錄
- 開始
- Registering components
- 控制范圍和生命周期
- 用模塊結構化Autofac
- xml配置
- 與.net集成
- 深入理解Autofac
- 指導
- 關於
- 詞匯表
泛型
給定一個開放的泛型,Autofac會提供一個具體的實現。
開放的泛型類型使用泛型服務注冊,給定一個服務類型和一個實現類型
public interface IRepository<T> { }
public class NHibernateRepository<T> : IRepository<T> { }
使用RegisterGeneric配置容器
builder.RegisterGeneric(typeof(NHibernateRepository<>)).As(typeof(IRepository<>)); 當檢索一個具體的服務時,會正確的得到一個具體的實現類型: // Returns NHibernateRepository<User> var userRepo = container.Resolve<IRepository<User>>();
限制
Autofac關心泛型約束。如果一個有約束的實現類型對服務不可用,那么這個實現類型將被忽略
參數映射
autofac支持一些復雜的參數映射,泛型參數可能會被重新整理以專供服務類型
