通用存储库结构图IOC问题

时间:2009-12-22 18:35:54

标签: structuremap ioc-container

我是IOC和strcturemap的新手,但我想知道如何注册从同一个接口实现的不同类,例如实现CustomerRepository和CategoryRepository的IRepository。 而且,正如您所看到的,如果我可以使用泛型类型。 像存储库或存储库

x.ForRequestedType<IRepository<Category>>().TheDefault.Is.OfConcreteType<IRepository<Category>>();

尝试了这一点它没有用。任何帮助都应该受到赞赏!

2 个答案:

答案 0 :(得分:2)

配置StructureMap时,您可以使用Scan API自动注册已关闭的类型。

Scan(x =>
{
  x.TheCallingAssembly();
  x.ConnectImplementationsToTypesClosing(typeof(IRepository<>));
});

此功能位于最新的主干中,但我不确定它是否是任何已发布的版本,并且可能尚未在官方文档中。但是,有一个很好的blog post that explains it

答案 1 :(得分:0)

没有为PluginFamily定义的默认实例MVCPoco.Data.IRepository`1 [[MVCPoco.Core.Category,MVCPoco.Core,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]],MVCPoco.Data,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null

得到了最新的版本......项目运行但是当我在构造函数中注入一个IRepository时,它给了我这个错误。