我有一个在我的业务层运行时创建的用户类,并且有AddPrefrence,CreateItem和delete等方法。这些方法需要访问存储库。为了消除依赖性,我已经使用了DI容器统一来在应用程序的其他部分注入存储库但是在这里我已经变得有点卡住,因为我必须传递仅在运行时可用的用户信息。我认为有一些方法可以将统一的运行时参数传递出去,但这看起来像是一个代码味道,我也考虑过一个抽象的工厂,但它看起来有点矫枉过正,因为这是它实际上唯一的具体类创造。我还考虑过使用不同类型的注射,例如属性注入。
这个问题是否有明确的答案,请您说明您建议的解决方案或模式的优缺点。非常感谢你。
编辑:最后我将我的User类吐出到User类中以保存数据,并将UserServices类吐出来与存储库进行交互,因为我认为我的User类违反了单一责任原则。这也允许我注入我的存储库,只需传入用户的id。它最终成为一个相对简单的重构器。如果您遇到类似的问题,我也建议您阅读以下Steven评论中的链接,因为我在文章中没有使用某种技术来帮助回答我的一些问题。