0

我有下面的 Windsor 语句并试图将其转换为结构映射语句。我真的找不到任何建议如何去做。

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

有人知道这是如何用结构图编写的吗?

编辑:为了更清楚..我上面的语句(几乎无论如何)是用温莎城堡写的,但是因为我们将使用 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 回答