1

在 StructureMap 中,您可以声明一个Forward<,>语句,这将允许注册单个具体实例,以由StructureMap 文档中的多个接口解析:

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 的替代品,但我在注册选项中没有看到任何与此匹配的内容。

这在拉马尔可能吗?

4

1 回答 1

2

根据StructureMap 文档 ,语法一直让用户感到困惑,建议的替换是:

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

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

于 2019-11-25T12:48:32.640 回答