2012-03-02 46 views
1

我正在使用UnityContainer向ctor註冊需要運行時參數的類型unityContainer

我想在其中註冊AuthServiceTokenManager

AuthService將TokenManager作爲私人記憶。

TokenManager有一個構造函數:TokenManager(string name, string pass)

我從UI這些字符串在運行時。

Unity要求在配置文件中註冊ctor參數。

我曾經想過

  • 創建一個構造函數:AuthService(TokenManager mgr)

但後來我怎麼在配置文件中添加一個對象(非原始)到<unity>節點?

  • 我怎樣才能仍然使用unity運行參數到TokenManager ctor?

回答

0

我的想法:

AuthService將有兩個構造函數 - 參和AuthService(bool initFromContainer)

在測試工具,我會打電話給新AuthService(假的),然後使用重寫TokenManager

AuthService_Accessor

0

TokenManager定義工廠並將工廠注入AuthService。使工廠接受用戶名和密碼的參數。

只要您需要incorporate runtime parameters,注射工廠就能很好地工作。但不要被這種模式帶走,否則你可能遇到factory overload

相關問題