在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的替代品),但是在注册选项中看不到与此匹配的任何内容。
在拉马尔有可能吗?
答案 0 :(得分:1)
根据StructureMap documentation,语法始终使用户感到困惑 ,建议替换为:
_.For<IReader>().Use(c => c.GetInstance<StatefulCache>());
所以我建议使用这种lambda方法。