2012-01-02 26 views
0

我有以下代碼:將參數傳遞給了深刻的類激活

class Controller 
{ 
    public Controller(Listener audioListener, 
         Listener videoListener) 
    {} 
} 

class Listener 
{ 
    public Listener(int port) 
    { 
      Console.WriteLine(port); 
    } 
} 

現在我需要的是Listener解決一個時間audioPort和其他與videoPort

var audioPort = 1330; 
var videoPort = 1331; 
var controller = kernel.Get<Controller>(); // should print 1330 and 1331 

到目前爲止與WithConstructorArgument,需要一個回調綁定,當我做這個。我想知道是否可以在實際解析類型時設置回調?

+0

有一個獲取超載thta takwes參數(包括設置爲繼承鏈)。對於所有這些事情,最好的答案是在測試中尋找一個相關的例子 - 它們整潔而緊湊。讓我們知道你如何繼續......(另外請務必查看wiki中的條件綁定和已發佈的文章)。 – 2012-01-02 21:44:57

+0

這些端口從哪裏來?靜態,配置,未知,直到創建偵聽器?你確定音頻和視頻處理之間的唯一區別是端口嗎?聽起來有點奇怪,你可以用相同的實現做兩件完全不同的事情。 – 2012-01-02 22:15:07

回答

0

我做了一點研究,顯然問題不同。

參數是運行時相關性。而我想這樣做的方式與服務定位模式有關,這在測試中很複雜。

使用運行時參數的更好方法解釋爲here