0

以下のwindsorステートメントがあり、それを構造マップステートメントに変換しようとしています。私は本当にそれを行う方法の提案を見つけることができません。

Container.Register(AllTypes.FromThisAssembly().
    BasedOn<IType>().If(MatchStatement).Configure(c => c.LifeStyle.Transient.
    Named(c.Implementation.Name)));

これがstructuremapでどのように記述されているか知っている人はいますか?

編集:より明確にするために..私はウィンザー城で書かれた上記のステートメントを(ほとんどとにかく)持っていますが、代わりにStructuremapを使用するので、同じことをStructuremapで行う必要があります。私はそれの一部を手に入れましたが、すべてではありません。

        Registry.Scan(x =>
                          {
                              x.TheCallingAssembly();
                              x.AddAllTypesOf<IType>();
                              //{What more?}
                          });

さらに必要なのは、MatchStatement条件を満たすことと、名前付きインスタンスを返すことです。

4

1 に答える 1

0

StructureMapのデフォルトのライフサイクルはPerGraph(トランジェントとシングルトンの混合)です。

次のコードは、呼び出し元のアセンブリをスキャンし、のすべての実装を追加しIType、各実装は実装の名前で登録されます。

Scan(scan =>
{
    scan.TheCallingAssembly();
    scan.AddAllTypesOf<IType>().NameBy(type => type.Name);      
});
于 2012-05-15T08:20:32.100 に答える