2012-08-09 97 views
0

我有一個接口和兩個實現它的類。其中一個在其構造函數中有一個參數。我已經在我的app.config中將它們都註冊爲服務。不幸的是,我無法在我的代碼中解決這兩個問題:具有構造函數的類未返回。Castle Windsor:ResolveAll不返回具有構造函數參數的服務

如:

interface ITest 
{ 
} 

class Test : ITest 
{ 
    private string a; 

    public Test(string a)   
    { 
     this.a = a; 
    } 
} 

class Test2 : ITest 
{ 
} 

這裏是我的配置:

<castle> 
    <components> 
     <component id="Test" type="XYZ.Test, XYZ" service="XYZ.ITest, XYZ"/>     
     <component id="Test2" type="XYZ.Test2, XYZ" service="XYZ.ITest, XYZ"/> 
    </components> 
</castle> 

這裏是我試圖讓我的服務代碼:

ITest[] resolveAll = container.ResolveAll<ITest>(new {a ="aText" }); 

陣列 「resolveAll」只包含'Test2',但沒有'Test'的痕跡。我怎麼能得到這兩個班?

我注意到,如果我ID爲 「測試」 解決:

object resolve = container.Resolve("Test", new { sessionId = "sessionId" }); 

我得到我的 '測試' 類。

我在做什麼錯?

回答

0

其實我是在一箇舊版本的溫莎城堡。在上一個版本(3.1),這是有效的。