Lamar替代StructureMap Forward()

时间:2019-02-19 14:45:10

标签: structuremap lamar

在StructureMap中,您可以声明一个Forward<,>语句,该语句允许注册一个具体实例,并由StructureMap documentation的多个接口来解析:

var container = new Container(_ =>
{
    // Let's make StatefulCache a SingletonThing in the container
    _.ForConcreteType<StatefulCache>().Configure.Singleton();

    _.Forward<StatefulCache, IReader>();
    _.Forward<StatefulCache, IWriter>();
});

container.GetInstance<IReader>().ShouldBeOfType<StatefulCache>();
container.GetInstance<IWriter>().ShouldBeOfType<StatefulCache>();

我正在考虑潜在地迁移到Lamar(StructureMap的替代品),但是在注册选项中看不到与此匹配的任何内容。

在拉马尔有可能吗?

1 个答案:

答案 0 :(得分:1)

根据StructureMap documentation语法始终使用户感到困惑 ,建议替换为:

_.For<IReader>().Use(c => c.GetInstance<StatefulCache>());

所以我建议使用这种lambda方法。