2009-01-22 36 views
1

我一直在嘗試整合最新版本的autofac(1.3.3.54),並且遇到以下問題。Autofac參數傳遞

在註冊回調消耗參數,每谷歌代碼維基爲項目的推薦的方式如下:

builder.Register((C,P)=>新的Foo(p.Get(」 ARG1" )));

但是,這不會與上述版本的autofac代碼一起編譯。我查看了源代碼,發現p是一個IEnumerable(ComponentActivatorWithParameters)。代碼是否與文檔有關?

回答

4

它看起來代碼已經改變,Wiki文檔還沒有更新。 「Get」方法現在是「Named」,「Parameter」類現在是「NamedParameter」。請參閱以下示例:

var builder = new ContainerBuilder(); 
builder.Register((c, p) => new Person(p.Named<string>("name"))); 

using (var container = builder.Build()) 
{ 
    var person = container.Resolve<Person>(new NamedParameter("name", "Fred"));  
} 

希望有人可以儘快更新文檔。

+0

完成,感謝指針! – 2009-08-04 05:23:45

0

我已將新建的documentation for AutoFac 1.3附加到AutoFac問題#121。我希望他們會繼續發佈官方1.3文檔,至少在他們退休1.3分支之前,並且支持.NET 2.0。