不清楚如何实现依赖注入

2024-01-07

假设我有一个 LoginView 及其数据上下文 LoginViewModel,需要注入一个可以根据用户名/密码对用户进行身份验证的服务。

现在假设应用程序的状态是有人已经登录,但现在他们正在注销,我需要为下一个用户重新显示登录屏幕。所以此时我需要一个 LoginViewModel 的实例,但我不知道如何获取它。

我应该将 LoginViewModel 注入到 ShellViewModel 中并保留并重用它吗?这看起来很奇怪,因为为什么我想在不使用它的时候将其保留在内存中(当然,在这种情况下没什么大不了的,但对于其他情况可能是这样)。

我是否应该将身份验证服务注入 ShellViewModel 以便在需要创建 LoginViewModel 时保留?这看起来很奇怪,因为我的 ShellViewModel 不需要对此服务执行任何操作,如果这是答案,那么我将为其显示的所有其他 ViewModel 注入各种内容到我的 ShellViewModel 中。

我知道我不应该在应用程序根目录之外的任何地方引用我的 DI 容器,否则我将实现服务定位器模式。

不可否认,我现在感觉很愚蠢,我确信当我听到答案时我会打自己的脸......那么它是什么?


在这样的场景中,我通常会注入与您的情况下的 LoginViewModel 工厂相对应的内容。这样你的逻辑就可以根据需要制造一个新的(或者可能由工厂缓存的)实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不清楚如何实现依赖注入 的相关文章

  • Visibility = IsCollapsed 是否跳过数据绑定部分?

    如果我将 StackPanel 或任何绑定区域设置为 折叠 数据会加载吗 它会触发它的 Loaded 事件吗 Yes 您的数据绑定将被评估 您的初始化事件将会触发 并且 您的 Loaded 事件将会触发 但在视觉树的部分中Visibilit
  • 多边形边界与具有 ScaleTransform 的画布上的视觉效果不匹配

    以下 XAML 只是画布上缩放为 x2000 的多边形 当鼠标悬停在多边形上时 有一个触发器会更改多边形的填充颜色 为什么当您将鼠标悬停在多边形上方和左侧时 框会改变颜色
  • Microsoft.Windows.Design.dll

    我下载了库 DynamicDataDisplay 其源代码 某些项目需要 Microsoft Windows Design dll 文件 我在哪里可以得到它 我搜索过它 但它不存在于我的硬盘上 如果您有 Visual Studio 等 则应
  • 支持全方向动画的扩展器

    我的目标 是创建一个带有扩展动画的自定义扩展器 并且应该支持所有方向 我尝试过的 我在以下人员的帮助下实施了一个解决方案this http www codeproject com Articles 248112 Templating WPF
  • wpf 中的双显示器双窗口应用程序

    我正在尝试创建一个带有媒体元素的 wpf 视频播放器 我的目标是为该应用程序制作多个窗口 每个窗口将显示在不同的显示器上 就像主窗口将获取主显示器的分辨率并调整自身大小以全屏显示一样 辅助监视器上的第二个窗口等等 到目前为止 我已将主窗口设
  • 从 Angular 2 和 Silverlight 应用程序使用相同的 WCF 服务

    目前 我们有一个带有 WCF 服务 后端 的 Silverlight 应用程序 前端 现在 我们将用 Angular 2 应用程序替换 Silverlight 应用程序 而不更改 WCF 服务 只有 UI 会发生变化 在开始使用 Angul
  • WPF 自定义 TabItem - 控件未显示在 Visual Studio 设计器中

    我创建了一个自定义 TabItem 其中包含 DockPanel 和 Button XAML
  • 具有线程安全性的 eventbus 最佳实践

    我的应用程序具有用户交互活动和后台服务 这是修改数据模型的唯一地方 后台服务监听用户所做的操作以及来自网络的传入消息 因此 可能会出现并发问题 我尝试使用处理程序来防止这些问题 对于事件层 我使用 greenrobots Eventbus
  • Nestjs全局pubsub实例和依赖注入

    我遵循了有关 pubsub subscriptions 的 Nestjs DOCS 根据示例 pubsub 在给定解析器的顶部初始化为 const pubSub new PubSub 后来文档说 我们在这里使用了本地 PubSub 实例 相
  • 依赖注入容器——工厂模式

    我一直在尝试了解依赖注入 并一直在阅读并尝试编写一个类似于以下内容的小型依赖注入容器 http fabien potencier org article 12 do you need a dependency injection conta
  • 在代码后面绑定属性

    我有 WPF 应用程序和其中的一个窗口 让我们在我的 xml 中添加这样的内容
  • 关于存储库的领域驱动设计问题

    我正在尝试实现 DDD 因此我创建了以下类 用户 域模型 UserRepository 管理对象的中央工厂 UserMapper UserDbTable 映射应用程序功能并提供 CRUD 实现的映射器 我的第一个问题是 当模型需要与持久层通
  • 如何防止新的 WPF 表单窃取焦点?

    我写了一个简单的MSN http en wikipedia org wiki MSN 风格的程序将使用发送和检索消息WCF http en wikipedia org wiki Windows Communication Foundatio
  • 如何注入“运行时”依赖项,例如登录用户,该依赖项在应用程序启动时不可用?

    我只是不明白这个 我在我的 java GWT 应用程序中使用 Gin 来进行 DI 登录屏幕集成到完整的应用程序窗口中 用户登录后 我想将用户对象注入到我创建的其他类 例如 GUI Presenters 中 因此我相信存在某种运行时依赖性
  • WPF 中的 stackpanel 和 virtualizingstackpanel 有什么区别?

    WPF 中的 stackpanel 和 virtualizingstackpanel 有什么区别 VirtualizingStack面板can在处理非常大的集合时提供性能优势 它通过仅渲染和处理用户可见的数据子集而不是处理整个数据列表来实现
  • 状态机实现

    我正在尝试构建一个棋盘游戏 并且看起来它必须使用状态机来实现 我知道的状态模式 http en wikipedia org wiki State pattern来自 GoF 但我确信一定还有其他方法来实现状态机 请告诉我 如果您知道任何文章
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • SpeechSynthesizer 中的持续内存泄漏

    我开发了一个项目 我想发布它使用 c WPF 和 System Speech Synthesizer 对象 阻止该项目发布的问题是 每当调用 SpeakAsync 时 都会留下内存泄漏 并最终导致失败 我相信在使用这个物体后我已经正确清理了
  • WPF 重用 DataGrid 模板Column DataTemplates

    我构建了一个具有自定义列的数据网格
  • Xamarin、Autofac、NavigationService 和 BeginLifetimeScope

    关于带有 autofac 的生命周期范围以及何时在 xamarin 应用程序中使用它们的初学者问题 正如这篇文章中提到的 https nblumhardt com 2011 01 an autofac lifetime primer htt

随机推荐

  • 消除 DateTimeFormat 和 Joda 的 DateTimeFormatter 之间细微的空白处理差异

    我们有一些现有的代码 如下所示 DateFormat dateFormats new SimpleDateFormat EEE d MMM yyyy HH mm ss Z Locale ENGLISH new SimpleDateForma
  • 当我在 .NET 5 中运行应用程序时,Serilog 不会创建日志 SQL 表

    我有 appsettings json 设置来自动创建日志表 autoCreateSqlTable true 但是 我检查了 SQL 但找不到该表 我似乎无法找到导致它无法创建和记录信息的原因 程序 cs public class Prog
  • 仅使用字符串 format() 方法的 Python 格式日期

    仅使用 python 格式化日期的快速方法是什么 format方法 我知道有一种方法可以不使用strftime 我需要更优雅的方法 我知道一个好方法 虽然不为人所知 但非常有用 您可以这样做 from datetime import dat
  • Ada 中的字符串数组

    我在 Ada95 中有一个程序 我必须在其中创建一个字符串数组 该数组可以包含可变长度的字符串 例子 我已经声明了一个数组 其中所有索引都可以存储大小为 50 的字符串 当我为上面的数组分配一个较小的字符串时 我收到 约束错误 Code p
  • 从检查堆栈中获取完全限定的方法名称

    我无法完成以下功能 def fullyQualifiedMethodNameInStack depth 1 The function should return
  • 在 Xcode 中自动多次运行测试用例

    在 Xcode 中 有没有办法让我自动运行单个测试用例 n 次 这样做的原因是我的一些 Beta 测试人员在我的应用程序中遇到了随机崩溃 我在 TestFlight 中看到崩溃日志以及堆栈跟踪 但无法重现崩溃 崩溃很少发生 但当发生时 总是
  • JQuery Mobile:调整分组选择的宽度和高度

    我在定位分组选择之前遇到了问题 但幸运的是已修复 现在我在调整分组选择的大小 调整宽度 高度时遇到问题 如果有人可以帮助我 我将不胜感激 下面是我的代码 这是我将其定位在屏幕上的代码 即使我添加了宽度和高度 它似乎也没有更新 我还注意到宽度
  • 如何在 Windows Phone 运行时获取 StorageFolder 中的所有文件?

    我想获取一个文件夹及其子文件夹中的所有文件 但像这样的平面查询 var allFiles await myFolder GetFilesAsync Windows Storage Search CommonFileQuery OrderBy
  • java.lang.IllegalStateException:ArrayAdapter 要求资源 ID 为 TextView [重复]

    这个问题在这里已经有答案了 我尝试过这个教程http windrealm org tutorials android android listview php http windrealm org tutorials android and
  • TypeScript:只有一个键的对象的类型(不允许联合类型作为键)[重复]

    这个问题在这里已经有答案了 我希望定义一个type可以只有一个键的对象 这是一个尝试 type OneKey
  • 防止 TrueType 字体的抗锯齿(或子像素渲染)

    这就是 ttf 字体的渲染方式 我使用 FontForge 创建了这种纯矢量 TrueType 字体 我想在需要基于矢量的字形且不支持加载 ttf 嵌入位图的应用程序上使用此字体 貌似没有这个问题 在某些颜色方案上 Windows 执行的子
  • 如何使用prometheus获取pod的CPU和内存使用百分比

    我想使用 promql Prometheus 以以下格式显示 pod 详细信息 此外 我想使用 promql 以以下格式显示应用程序 组件的 CPU 和内存利用率 promql 查询 sum container memory working
  • 插值函数需要

    我需要一个可以像原型 js 框架那样进行插值的 JavaScript 函数 有人有不依赖原型的插值函数吗 欢迎使用 Jquery 谢谢 根据您的需求 类似这样的事情可能会起作用 String prototype interpolate fu
  • 加速位图灰度转换,OpenMP 是 C# 中的一个选项吗?

    请帮助我使用 openmp 使此代码并行 此代码在单击按钮时运行 文本框为 128 using System using System Collections Generic using System ComponentModel usin
  • 使用 Tidyverse Join 更新/替换 Dataframe 中的值

    使用查找表中的 正确 值更新 替换主数据集中的 NA 最有效的方法是什么 这是很常见的操作 类似的问题似乎没有整齐的解决方案 限制条件 1 请假设有大量缺失值和比给出的示例更大的查找表 因此 按情况进行替换操作是不切实际的 没有case w
  • Angular 4在组件之间传递数据,无需输入\输出

    我正在尝试在 Angular 4 的组件之间传递数据 我不想使用输入 输出 在 HomeComponent 中 我想将数据推送到服务中 在 page2 组件中 我想从服务中获取数据 我只是查看了 observable 和 subject 的
  • 虚函数和vtable是如何实现的?

    我们都知道C 中什么是虚函数 但是深层次上它们是如何实现的呢 vtable可以在运行时修改甚至直接访问吗 vtable 是针对所有类都存在 还是只针对那些至少具有一个虚函数的类 抽象类是否至少有一个条目的函数指针为 NULL 使用单个虚函数
  • 使用aiogram创建后台进程

    我正在尝试在我正在开发的使用 aiogram 的电报机器人中发送加密货币的价格警报 我遇到的问题是 我不确定如何启动一个函数作为后台 非阻塞线程 然后继续启动调度程序 我知道如何使用标准同步电报机器人来做到这一点 但我对我应该用 aiogr
  • 如何本地化 UserControl

    我正在开发一个必须支持多种语言的Windows应用程序 我已经关注了下面的文章http msdn microsoft com en us library y99d1cd3 v vs 71 aspx http msdn microsoft c
  • 不清楚如何实现依赖注入

    假设我有一个 LoginView 及其数据上下文 LoginViewModel 需要注入一个可以根据用户名 密码对用户进行身份验证的服务 现在假设应用程序的状态是有人已经登录 但现在他们正在注销 我需要为下一个用户重新显示登录屏幕 所以此时