gpt4 book ai didi

c# - WPF MVVM 轻应用程序中的 SimpleIoc 问题

转载 作者:行者123 更新时间:2023-12-03 10:36:04 25 4
gpt4 key购买 nike

我有一个使用 MVVM Light 的 wpf 应用程序.我有两个类和接口(interface):

public interface ICrud{
//
}

public class CrudDAO : ICrud{
//
}

public class CrudEF : ICrud{
//
}

我有两个 View 模型:
  public class CrudDAOVM {
public ICrud icrud;
public CrudDAOVM (ICrud _icrud)
{
icrud = _icrud;
}
}

public class CrudEFVM {
public ICrud icrud;
public CrudEFVM (ICrud _icrud)
{
icrud = _icrud;
}
}

我想使用 简单Ioc 注入(inject)依赖项。所以我在 中添加了这段代码查看模型定位器 :
SimpleIoc.Default.Register<ICrud , CrudDAO >(); //I'd like to add the condition here
SimpleIoc.Default.Register<ICrud , CrudEF >();//I'd like to add the condition here

我想添加一个条件,指定 inside CrudVMDAO, the implementation of ICrud is CrudDAO, and inside CrudVMEF, the implementation of ICrud is CrudEF
是否可以使用 SimpleIoc 执行此操作? ?

最佳答案

如果要注册多个实现,可以在注册时添加一个键来区分它们,如下所示。

SimpleIoc.Default.Register<ICrud>(() => new CrudDAO(), "CrudDAO");
SimpleIoc.Default.Register<ICrud>(() => new CrudEF(), "CrudEF");

CrudVMDAO 内部:
SimpleIoc.Default.GetInstance<ICrud>("CrudDAO");

CrudVMEF 内部:
SimpleIoc.Default.GetInstance<ICrud>("CrudEF");

关于c# - WPF MVVM 轻应用程序中的 SimpleIoc 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28495682/

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