【发布时间】:2015-08-15 05:30:04
【问题描述】:
我有现有代码使用 System.Configuration.Provider 命名空间作为提供程序集合来插入接口的各种实现,其中集合中存在多个实现,并根据各种逻辑按名称选择。
此命名空间在 .net core 中不可用,因此我正在寻找有关如何实施可与 .net core 框架一起使用的替代解决方案的建议。
我知道如果我只是想插入一个实现,我可以通过依赖注入来做到这一点。但我正在寻找一种方法,可以根据名称选择多种实现。
我当前使用提供程序模型的实现从一个文件夹中填充提供程序集合,您可以在该文件夹中放入声明实际实现类型的 xml 文件,因此只需将另一个文件添加到程序集中,就可以从程序集中加载提供程序的新实现文件夹。我希望逻辑尽可能与此相似,但我对 json 文件而不是 xml 持开放态度。
我想我可以从 Startup 中的 json 文件加载接口的实现集合,并使用依赖注入在需要的地方提供集合,或者可以获取集合的接口可能会更轻,并允许在何时获取它们它们是需要的,而不是在启动时。
这是正确的方法吗?有人有更好的想法或做过类似的事情吗?
【问题讨论】:
标签: asp.net-core provider-model