Autofac参数传递

时间:2009-01-22 22:35:57

标签: autofac

我一直在尝试集成最新版本的autofac(1.3.3.54),我遇到了以下问题。

根据项目的Google代码维基,在Register回调中使用参数的推荐方法如下:

builder.Register((c,p)=> new Foo(p.Get(“arg1”)));

但是,这不会使用上述版本的autofac代码进行编译。我查看了源代码,我发现p是一个IEnumerable(ComponentActivatorWithParameters)。代码是否与文档相关过时了?

2 个答案:

答案 0 :(得分: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"));    
}

希望有人可以尽快更新文档。

答案 1 :(得分:0)

我已将新构建的documentation for AutoFac 1.3附加到AutoFac问题#121。我希望他们将恢复发布官方1.3文档,至少他们退出1.3分支,并支持.NET 2.0。