我一直在嘗試整合最新版本的autofac(1.3.3.54),並且遇到以下問題。Autofac參數傳遞
在註冊回調消耗參數,每谷歌代碼維基爲項目的推薦的方式如下:
builder.Register((C,P)=>新的Foo(p.Get(」 ARG1" )));
但是,這不會與上述版本的autofac代碼一起編譯。我查看了源代碼,發現p是一個IEnumerable(ComponentActivatorWithParameters)。代碼是否與文檔有關?
我一直在嘗試整合最新版本的autofac(1.3.3.54),並且遇到以下問題。Autofac參數傳遞
在註冊回調消耗參數,每谷歌代碼維基爲項目的推薦的方式如下:
builder.Register((C,P)=>新的Foo(p.Get(」 ARG1" )));
但是,這不會與上述版本的autofac代碼一起編譯。我查看了源代碼,發現p是一個IEnumerable(ComponentActivatorWithParameters)。代碼是否與文檔有關?
它看起來代碼已經改變,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"));
}
希望有人可以儘快更新文檔。
我已將新建的documentation for AutoFac 1.3附加到AutoFac問題#121。我希望他們會繼續發佈官方1.3文檔,至少在他們退休1.3分支之前,並且支持.NET 2.0。
完成,感謝指針! – 2009-08-04 05:23:45