1

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

根据项目的 Google 代码 wiki,在注册回调中使用参数的推荐方式如下:

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

但是,这不会与提到的 autofac 代码版本一起编译。我查看了源代码,发现 p 是一个 IEnumerable (ComponentActivatorWithParameters)。相对于文档,代码是否已过时?

4

2 回答 2

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"));    
}

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

于 2009-06-10T20:18:10.330 回答
0

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

于 2009-06-30T04:57:28.480 回答