列出与DI有关的所有应用程序上可全局获取的数据

颜色

我要解决的问题是能够定义列表,该列表中的数据来自注入的数据源,但是该列表必须在整个应用程序中都可访问。

现在我有这个课:

public class InmutableLists
{       
    public static List<Empresa> ListaEmpresas = new EmpresaRepositorioBD().ObtenerEmpresas().ToList();
    public static List<Sala> ListaSalas = new SalaRepositorioBD().ObtenerSalas().ToList();
    public static List<Maquina> ListaMaquinas = new MaquinasRepositorioBD().ObtenerMaquinas().ToList();
    public static List<Tecnica> ListaTecnicas = new TecnicasRepositorioBD().ObtenerTecnicas().ToList();
}

问题是数据源是显式的XX_RepositorioBD,我有几个用于这些列表的数据源(文件,xml等),我希望能够使用Ninject注入适当的数据源。因此,使用IEmmpresaRepositorio代替EmpresaRepositorioBD。喜欢:

public static List<Empresa> ListaEmpresas = new IEmpresaRepositorio.ObtenerEmpresas().ToList();

但我不知道。我尝试将[inject]放在列表和单例上,但是没有用。最后,我需要提供一些UI组件,例如:

comboBoxModel.Datos = InmutableLists.ListaMaquinas;

有什么建议吗?现在它正在工作,但已与BD源数据耦​​合。

BatteryBackupUnit

Ninject支持“多次注入”,请参见https://github.com/ninject/ninject/wiki/Multi-injection现在的问题是,当您想注入可枚举类型时,例如数组(Foo[]),可枚举(IEnumerable<Foo>),集合(ICollection<Foo>)或列表(IList<Foo>)(甚至可能更多)绑定它们不起作用,但是ninject将查找该绑定的所有绑定Foo并实例化每个绑定,然后将它们作为请求的可枚举值返回。

长话短说,以下内容不起作用:

this.Kernel.Bind<IList<Foo>>().ToConstant(new List<Foo> { foo1, foo2 });

要解决此问题,您可以创建自己的集合类型:

public class EmpresaList : List<Empresa> { } 

并绑定它:this.Kernel.Bind()。ToMethod(ctx => InmutableLists.ListaEmpresas);

(当然,您也可以创建单例绑定,常量绑定等等。)

编辑:对于您的示例,您可以使用:

this.kernel
    .Bind<EmpresaList>()
    .ToMethod(ctx => new EmpresaList(
                     ctx.Kernel.Get<IEmpresaRepositorio>()
                               .ObtenerEmpresas()))
    .InSingletonScope();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jsoup在Android应用程序上获取所有html数据,但不在Java控制台应用程序上获取

来自分类Dev

调用连接到数据库的所有应用程序上的挂钩

来自分类Dev

如何在服务器上获取有关为苹果应用程序内购买设置的产品的信息?

来自分类Dev

获取有关单击通知的应用程序运行信息

来自分类Dev

获取有关应用程序RAM使用情况的详细信息

来自分类Dev

Phonegap应用程序:获取有关视频更改的先前视频的当前时间

来自分类Dev

获取有关单击通知的应用程序运行信息

来自分类Dev

如何在代码中获取有关应用程序缓存的信息?

来自分类Dev

以编程方式获取有关Mac OS X应用程序的信息

来自分类Dev

Android应用程序在此屏幕上崩溃,与多个侦听器有关

来自分类Dev

应用程序在Ubuntu 18.10上加载缓慢-似乎与fontconfig有关

来自分类Dev

在Ubuntu GNOME 17.04上需要有关C ++应用程序的帮助

来自分类Dev

更改有关游戏内应用程序的内容

来自分类Dev

启动有关NFC标签检测的应用程序

来自分类Dev

更改有关游戏内应用程序的内容

来自分类Dev

有关以OOP方式构建应用程序的说明

来自分类Dev

有关调试Web应用程序的术语

来自分类Dev

如何在我设备的所有应用程序上应用模式锁定?

来自分类Dev

有关更改应用程序以支持多个数据库后端的建议

来自分类Dev

有关部署MVC应用程序的数据库问题

来自分类Dev

如果用户修改值,请在所有应用程序上实时更改它

来自分类Dev

在SwiftUI中将Swift应用程序上的所有Text()设置为相同的颜色

来自分类Dev

如果用户修改值,请在所有应用程序上实时更改它

来自分类Dev

如何显示显示在主屏幕和所有应用程序上的通知-Android

来自分类Dev

无法授予MS Asure graph API客户端应用程序以获取有关ManagedDevices的数据的权限。如何克服?

来自分类Dev

是否可以在每个应用程序上发布具有不同数据的 IOS 应用程序?

来自分类Dev

setBookmarkExclude 在带有 DT 数据表的闪亮应用程序上?

来自分类Dev

如何使用WPF商业应用程序从Outlook获取有关当前用户分发列表的信息

来自分类Dev

保留有关重新部署Java EE 7 Web应用程序的数据的简单方法

Related 相关文章

  1. 1

    Jsoup在Android应用程序上获取所有html数据,但不在Java控制台应用程序上获取

  2. 2

    调用连接到数据库的所有应用程序上的挂钩

  3. 3

    如何在服务器上获取有关为苹果应用程序内购买设置的产品的信息?

  4. 4

    获取有关单击通知的应用程序运行信息

  5. 5

    获取有关应用程序RAM使用情况的详细信息

  6. 6

    Phonegap应用程序:获取有关视频更改的先前视频的当前时间

  7. 7

    获取有关单击通知的应用程序运行信息

  8. 8

    如何在代码中获取有关应用程序缓存的信息?

  9. 9

    以编程方式获取有关Mac OS X应用程序的信息

  10. 10

    Android应用程序在此屏幕上崩溃,与多个侦听器有关

  11. 11

    应用程序在Ubuntu 18.10上加载缓慢-似乎与fontconfig有关

  12. 12

    在Ubuntu GNOME 17.04上需要有关C ++应用程序的帮助

  13. 13

    更改有关游戏内应用程序的内容

  14. 14

    启动有关NFC标签检测的应用程序

  15. 15

    更改有关游戏内应用程序的内容

  16. 16

    有关以OOP方式构建应用程序的说明

  17. 17

    有关调试Web应用程序的术语

  18. 18

    如何在我设备的所有应用程序上应用模式锁定?

  19. 19

    有关更改应用程序以支持多个数据库后端的建议

  20. 20

    有关部署MVC应用程序的数据库问题

  21. 21

    如果用户修改值,请在所有应用程序上实时更改它

  22. 22

    在SwiftUI中将Swift应用程序上的所有Text()设置为相同的颜色

  23. 23

    如果用户修改值,请在所有应用程序上实时更改它

  24. 24

    如何显示显示在主屏幕和所有应用程序上的通知-Android

  25. 25

    无法授予MS Asure graph API客户端应用程序以获取有关ManagedDevices的数据的权限。如何克服?

  26. 26

    是否可以在每个应用程序上发布具有不同数据的 IOS 应用程序?

  27. 27

    setBookmarkExclude 在带有 DT 数据表的闪亮应用程序上?

  28. 28

    如何使用WPF商业应用程序从Outlook获取有关当前用户分发列表的信息

  29. 29

    保留有关重新部署Java EE 7 Web应用程序的数据的简单方法

热门标签

归档