gpt4 book ai didi

c# - Mvvm - 如何在 SimpleIoC 中获取实例 key

转载 作者:行者123 更新时间:2023-11-30 12:21:20 25 4
gpt4 key购买 nike

我在 Xamarin 项目中使用 mvvm light SimpleIoC 并使用实例键来获取一些 View 模型。

SimpleIoc.Default.GetInstance<ContextViewModel>("contextIdentifier");

有没有办法在构造函数中像其他依赖项一样在实例本身中获取此实例键?

我知道我可以在我的 ContextViewModel 上创建和设置自定义属性,但由于我的类(class)需要这个值才能工作,我不喜欢我可以获得“非操作实例”的想法"这个 View 模型。

编辑更多信息,解释为什么我希望我的 ViewModel 实例知道它的标识符:

这是一个 Xamarin.iOS 应用程序(ViewController 由 Storyboard创建)。

在我的应用程序中,我有多个相同 View Controller 的实例(并且在相同的 UITabBarController 中),因此,我需要为每个 View Controller 实例使用不同的 ViewModel 实例。

由于我的 ViewModel 需要一个 id 才能从数据库中获取一些数据,所以我想我也会使用这个标识符作为实例标识符。

我可以通过在我的 View Controller 的 ViewDidLoad() 方法中获取我的 ViewModel 实例并在其上调用一些 Setters 来使其工作,但我不喜欢这样(也许我错了 :))因为在我的请记住,IoC 应该只返回操作实例(不需要调用多个 setter)。

最好的问候。

最佳答案

我认为没有办法在构造函数中访问该 ID。该 ID 在 SimpleIOC 内部注册。我会简单地创建一个新类型的 ViewModel 并向其添加一个 InstanceID 属性。

var viewModel = SimpleIoc.Default.GetInstance<MyViewModel>("contextIdentifier");
viewModel.ID = "contextIdentifier";

public class MyViewModel : ViewModelBase
{
public string ID { get; set; }
}

关于c# - Mvvm - 如何在 SimpleIoC 中获取实例 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835518/

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