1

最新バージョンのautofac(1.3.3.54)を統合しようとしていますが、次の問題が発生しています。

プロジェクトのGoogleコードウィキによると、Registerコールバックでパラメータを使用するための推奨される方法は次のとおりです。

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 issue #121に添付しました。少なくとも 1.3 ブランチを廃止し、それとともに .NET 2.0 をサポートするまで、正式な 1.3 ドキュメントの投稿を再開してくれることを願っています。

于 2009-06-30T04:57:28.480 に答える