从windsor到structuremap的重构语句

时间:2012-05-11 21:34:22

标签: c#-4.0 castle-windsor structuremap

我有以下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条件并返回命名实例。

1 个答案:

答案 0 :(得分:0)

StructureMap的默认生命周期是PerGraph(瞬态和单例混合)。

以下代码扫描调用程序集并添加IType的所有实现,并且每个实现都使用实现的名称注册。

Scan(scan =>
{
    scan.TheCallingAssembly();
    scan.AddAllTypesOf<IType>().NameBy(type => type.Name);      
});