AutoFac文檔
目錄
- 開始
- Registering components
- 控制范圍和生命周期
- 用模塊結構化Autofac
- xml配置
- 與.net集成
- 深入理解Autofac
- 指導
- 關於
- 詞匯表
Resolve的參數
當注冊或者檢索component的時候可以使用參數
傳遞參數給Resolve
Resolve接受可變長度的參數列表
var fred = Resolve<Person>(new NamedParameter("name", "Fred"));
如果是通過反射注冊的,這樣做可以自動映射到類中指定對應參數的構造函數。比如:
class Person { public Person(string name) ...
可用的參數類型
Autofac提供幾種不同的參數對應策略
- NamedParameter -像上面那樣對應的參數名字
- TypedParameter -對應到參數的類型(必須是具體的類型)
- ResolvedParameter 靈活的參數匹配
NamedParameter 和TypedParameter 只能提供常量參數
從表達式中使用參數
如果Person是使用表達式注冊的,可以使用第二個可用的委托參數(IEnumerable類型)來獲得參數。
builder.Register((c, p) => new Person(p.Named<string>("name")));
委托工廠
閱讀委托工廠來獲得一種清晰簡潔的創建需要參數的component的方法。