假设我有一个 LoginView,它的数据上下文 LoginViewModel 需要注入一个可以根据用户名/密码对用户进行身份验证的服务。
现在假设应用程序的状态是有人已经登录,但现在他们正在注销,我需要为下一个用户重新显示登录屏幕。所以此时我需要一个我的 LoginViewModel 的实例,但我不确定如何获取它。
我是否应该将 LoginViewModel 注入我的 ShellViewModel 并持有并重用它?这看起来很奇怪,因为我为什么要在不使用它的时候将它保存在内存中(当然,在这种情况下没什么大不了的,但可能适用于其他情况)。
我是否应该将身份验证服务注入 ShellViewModel 以在需要创建 LoginViewModel 时保留?这看起来很奇怪,因为我的 ShellViewModel 不需要对这个服务做任何事情,如果这是答案,那么我会为它显示的所有其他 ViewModel 注入各种东西到我的 ShellViewModel 中。
而且我知道我不应该在我的应用程序根以外的任何地方引用我的 DI 容器,否则我将实施服务定位器模式。
诚然,我现在感觉很愚蠢,当我听到答案时,我敢肯定我会扇自己耳光……那是什么?