如果你看看我一直在为dependency injection in C++工作的库,我最近添加了an example,它模仿了我为一个真实项目创建的东西:直接注入应用程序配置的能力。
这一切都很好,因为构造函数只是要求一个ConfigItem< ConfigTag>类型,这是神奇地传递。
当我需要同时访问所有这些(例如配置对话框)时会出现问题。
我提出的愚蠢的解决方案是使用预处理器生成一个类,该类获取构造函数中的所有配置项,如here所示。
如果我可以注入注入器,那么这个问题将“很好地”解决,因为我只需要生成代码来收集所有ConfigItem实例,如图所示here。
请注意,所有ConfigItem都在单一范围内。
希望这个问题有道理:你会怎么做?