2009-12-22 65 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

相關問題