2009-12-22 36 views
0

我是新来的国际奥委会和结构地图,但我想知道如何我可以注册不同的类实现从相同的接口实现例如IRepository实现CustomerRepository和CategoryRepository。 而且,你可以看到,如果我可以使用这个泛型类型。 像仓库或储存库通用存储库结构图国际奥委会问题

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

试该位它没有worked..any帮助对子级不胜感激!

+0

我不知道StructureMap是如何工作的,但我会写出'Is.OfConcreteType >'。 'Repository','Repository','Repository',而不是'IRepository'。 – LukLed 2009-12-22 18:53:03

回答

2

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

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

此功能在最新的主干,但我不知道这是否是任何发布的版本,而且很可能还没有官方的文档。但是,有一个很好的blog post that explains it

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时,它给了我那个错误。

+0

我需要注册ir?存储库的名称是Repository.cs ...我无法弄清楚我做错了什么! – diego 2009-12-23 18:00:09

+0

我遇到了同样的问题,确保它找不到的类是公共的。 – Andrew 2010-02-17 16:52:44

相关问题