gpt4 book ai didi

c# - MVVMLight 中 IoC 容器的好处

转载 作者:行者123 更新时间:2023-12-01 16:28:11 24 4
gpt4 key购买 nike

MVVM Light 中 IoC 容器有什么好处? ViewModelLocator 有什么好处?为什么不直接在 XAML 文件中实例化 View 模型,如下所示?

<UserControl>
<UserControl.DataContext>
<vm:MainViewModel/>
</UserControl.DataContext>

<!-- Other user control elements here -->

</UserControl>

最佳答案

在 Xaml 中实例化 View 模型绝对没问题,但有一些事情需要考虑...

  • 当您使用 Xaml 作为 View 模型时,将在主窗口的 InitializeComponent 方法期间调用 VM 构造函数。这意味着 VM 将在 UI 线程上创建。有些开发者喜欢这样,有些则不喜欢。
  • 此外,当您使用 Xaml 时,就像对 VM 进行“硬编码”一样,这会破坏在大型复合应用程序中发挥不可或缺作用的后期绑定(bind)和模块发现
  • 与上一点有些相关,一些团队喜欢解耦所有内容并使用配置文件来告诉应该实例化哪个虚拟机。如果您想要进行隔离测试,这种方法特别有用。

对于想要使用 MVVM 的小型一次性 WPF 应用程序,Xaml 方法就可以了;但随着应用程序的成熟,最终将需要一种更具工业实力的方法。这就是 IoC 容器必不可少的地方。

关于c# - MVVMLight 中 IoC 容器的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23491938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com