正在向要求在unityContainer中使用运行时参数的ctor注册类型
本文关键字:参数 运行时 注册 类型 ctor unityContainer | 更新日期: 2023-09-27 18:26:24
我使用的是UnityContainer
。
我想在里面注册AuthService
和TokenManager
。
AuthService
将TokenManager作为私有member。
TokenManager
有一个ctor:TokenManager(string name, string pass)
我在运行时从UI获取这些字符串。
Unity需要在配置文件中注册ctor参数。
我认为
- 创建ctor:
AuthService(TokenManager mgr)
但是,如何将对象(非基元)添加到配置文件中的<unity>
节点?
- 我如何仍然使用带有
TokenManager
ctor运行时参数的Unity
我的想法:
AuthService将有两个ctor-无参数和AuthService(bool initFromContainer)
在测试线束中,我将调用新的AuthService(false),然后覆盖TokenManager
使用AuthService_Accessor
为TokenManager
定义一个工厂,并将工厂注入AuthService
。让工厂接受用户名和密码的参数。
每当您需要合并运行时参数时,注入工厂就可以很好地工作。但不要被这种模式冲昏头脑,否则你可能会遇到工厂过载的情况。