不清楚如何实现依赖注入

2024-01-07

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

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

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

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

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

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


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

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

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

  • WPF - 如何从 DataGridRow 获取单元格?

    我有一个具有交替行背景颜色的数据绑定 DataGrid 我想根据单元格包含的数据对单元格进行不同的着色 我已经尝试过该线程建议的解决方案 http wpf codeplex com Thread View aspx ThreadId 511
  • 需要“依赖属性”的简短而清晰的定义

    我试图弄清楚依赖属性到底是什么 但是当我在任何地方寻找定义时 我只找到 如何使用 而不是 它是什么 想象一下 您在面试时被问到 什么是依赖属性 你的答案是什么 DependencyProperty 是一个属性 其值取决于 或可以取决于 某些
  • 给图像着色[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试着色System Windows Controls Image 该图像包含透明区域 我只是想用颜色给非透明区域着色 例如 图
  • Android-使用 ViewHolder 和 AsyncTask 加载联系人-缩略图问题

    我正在创建一个自定义联系人应用程序 我使用带有 ViewHolder 设计模式的 ArrayAdapter 进行优化 由于加载缩略图需要花费大量时间 因此我使用 AsyncTask 类来加载图像 用于第一组联系人我的屏幕上 图片加载得很好
  • 将 Pivot 控件与 Observable Collection MVVM 绑定(Windows Phone 8)

    我是 WP8 和 MVVM 的新手 我创建了 wp8 应用程序 一旦用户登录 它就会请求各种数据 我只是无法动态创建我的数据透视表头 我不知道这是否是因为我在绑定中做了一些事情 INotifyPropertyChanged 两者或其他 这是
  • 如何在 WPF 应用程序上执行异步启动?

    我在异步等待方面相当落后 所以这可能是一个 duh 问题 我正在开发一个非常小的 UI 应用程序 它使用以下命令从系统托盘运行WPF 通知图标 http www codeproject com Articles 36468 WPF Noti
  • 如何以编程方式调用应用程序菜单?

    我有自定义样式的非矩形透明窗口
  • 包含内容的 WPF 新窗口

    我想在现有的主 Windwoe 旁边创建一个带有可滚动文本框的新窗口 我在主窗口中按下 打开新窗口 按钮 然后它应该打开一个带有可滚动文本框的新窗口 inside form2 在 WPF 中 您可以在主窗口中拖放元素 但不能在新窗口中执行此
  • IntelliJ可以自动创建装饰器类吗?

    有时 我创建一个像这样的装饰器类 class MyInterfaceDecorator implements MyInterface private final MyInterface delegate constructor taking
  • 使用编译时编织进行依赖注入? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我只是想了解 PostSharp 老实说我认为它太棒了 但有一件事对我来说很难如何纯依赖注入 不是服务定位器 无法完成 https cod
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • 纠正装饰器模式的一个大缺点

    不久前 我在重构一些游戏战斗代码时决定尝试装饰器模式 战斗者可以拥有各种被动能力 也可能是不同类型的生物 我认为装饰器可以让我在运行时以各种组合添加行为 因此我不需要数百个子类 我几乎已经完成了 15 个左右的被动能力装饰器 在测试中我发现
  • 在 NUnit 测试中使用 WPF 组件 - 如何使用 STA?

    我需要在 NUnit 单元测试中使用一些 WPF 组件 我通过 ReSharper 运行测试 在使用 WPF 对象时失败并出现以下错误 系统 InvalidOperationException 调用线程必须是 STA 因为许多 UI 组件都
  • 当 AutoGenerateColumns = True 时如何重命名 DataGrid 列?

    我有一个简单的数据结构类 public class Client public String name set get public String claim number set get 我正在将其喂入DataGrid this data
  • 如何使取消按钮像“X”按钮一样工作?

    在我的 XAML 文件中 我有一个窗口 我试图将其设置为无论用户单击 X 按钮还是单击 取消 按钮 行为都是相同的 我的缩写代码如下 public partial class Dialog Window private void Windo
  • 确定一组日期的事件重复模式

    我正在寻找一种模式 算法或库 它将采用一组日期并在退出时返回重复的描述 即集合 11 01 2010 11 08 2010 11 15 2010 11 22 2010 11 29 2010 会产生类似 十一月的每个星期一 的结果 有没有人以
  • 无需转换器即可根据布尔值绑定 Image.Source?

    我想要将图像绑定到布尔值 并让图像的源依赖于布尔值 即 true source image1 false source image2 我想知道是否有一种方法可以在不需要转换器的情况下内联完成它 您可以在图像上创建一个样式 该样式使用 Dat
  • 如何在 C#/WPF 中停止动画?

    我有这样的事情 barProgress BeginAnimation RangeBase ValueProperty new DoubleAnimation barProgress Value dNextProgressValue new
  • 你怎么知道何时使用设计模式? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 任何人都可以阅读 GoF 书来了解什么是设计模式以及如何使用它们 但是弄清楚设计模式何时解决问题的过程是什么 模式的知识是否驱动设计
  • Xamly 将键盘焦点设置为 DataGridTemplateColumn 单元格中的元素?

    我已经在 DataGridTemplateColumn CellEditing DataTemplate 中设置了一些内容 我希望当单元格编辑加载并显示模板时 键盘焦点应该给予模板中的某个控件 考虑这个例子 当您进入编辑模式时 文本框不是以

随机推荐

  • 消除 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 需要注入一个可以根据用户名 密码对用户进行身份验证的服务 现在假设应用程序的状态是有人已经登录 但现在他们正在注销 我需要为下一个用户重新显示登录屏幕 所以此时