2011-05-14 316 views
2

假設我有幾個類實現接口:IFileDownloader。Castle Windsor:註冊多種類型

如果我註冊一個組件單獨一切都很好:

kernel.Register(Component.For<IFileDownloader>().ImplementedBy<HttpFileDownloader>()); 

但是如果我想註冊實現它的簡化版,該接口的所有部件似乎註冊它們:

kernel.Register(AllTypes.FromThisAssembly().BasedOn<IFileDownloader>()); 

我必須缺少明顯的東西。

非常感謝, -Alex

回答

4

有可能是爲什麼你希望的

  1. 你的類是內部和溫莎忽略它們你的註冊無法正常工作兩方面的原因。
  2. 您沒有指定您想用IFileDownloader服務註冊它們。我想,你以後就是:

    kernel.Register(AllTypes.FromThisAssembly() 
        .BasedOn<IFileDownloader>() 
        .WithService.Base()); 
    
+0

+1偉大的,你終於通過......我回落知道有些事情我都忘了:) – 2011-05-14 22:59:04

+0

也就是說就是我一直在尋找。感謝您的幫助。 – 2011-05-15 06:21:18

+0

你能告訴我如何在配置文件中做到這一點嗎? – 2012-04-24 14:17:13

相關問題