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