我正在寻找一种基于约定的方法来替换我的 StructureMap 注册表中的以下行:
this.For<IMyFactory<ItemList, int>>().Use(x => x.GetInstance<GenericMyFactory<ItemList, int>>());
澄清
我所追求的是一种自动注册 IMyFactory 的方法,即以与接口声明相同的顺序创建具有相同类型的具体实例。我在上面声明的方式仅适用于 ItemList / int 组合 - 我想要的是一种使用任何类型组合的方式。
我在其他 SO 帖子上发现了这种方法,当只提供一种类型时,这似乎工作得很好,但我似乎无法找到一种在超过 1 种类型是通用的情况下可以工作的方法。以下给出了我的情况下的编译错误。
this.Scan(x =>
{
x.TheCallingAssembly();
x.AddAllTypesOf(typeof(IMyFactory<>));
x.WithDefaultConventions();
});
资料来源: