Asp.net core ASP.NET 5中提供程序模型的替换实现
我有一个现有代码,它使用System.Configuration.Provider命名空间为提供者集合插入接口的各种实现,其中集合中存在多个实现,并根据各种逻辑按名称进行选择 此名称空间在.NETCore中不可用,因此我正在寻找有关如何实现与.NETCoreFramework一起使用的替换解决方案的建议 我知道,如果我只是尝试插入一个实现,我可以通过依赖注入来完成。但我正在寻找一种方法,可以根据名称选择多个实现 我当前的provider模型实现从一个文件夹中填充provider集合,您可以在该文件夹中放入声明实际实现类型的xml文件,因此只需将另一个文件添加到该文件夹中,就可以从程序集加载该提供程序的新实现。我希望保持尽可能类似的逻辑,但我对json文件而不是xml开放 我在想,我可以在启动时从json文件中加载接口实现的集合,并在需要时使用依赖项注入来提供集合,或者可能一个可以获得集合的接口会更轻,并且允许在需要时而不是在启动时获得它们Asp.net core ASP.NET 5中提供程序模型的替换实现,asp.net-core,provider-model,Asp.net Core,Provider Model,我有一个现有代码,它使用System.Configuration.Provider命名空间为提供者集合插入接口的各种实现,其中集合中存在多个实现,并根据各种逻辑按名称进行选择 此名称空间在.NETCore中不可用,因此我正在寻找有关如何实现与.NETCoreFramework一起使用的替换解决方案的建议 我知道,如果我只是尝试插入一个实现,我可以通过依赖注入来完成。但我正在寻找一种方法,可以根据名称选择多个实现 我当前的provider模型实现从一个文件夹中填充provider集合,您可以在该文
这是正确的方法吗?有人有更好的想法或做过类似的事情吗?这比在新框架中使用抽象基类(如
ProviderBase
)更通用。您可以向DI框架注册多个相同的服务,只需请求注册类型的IEnumerable
,或者使用GetRequiredServices
扩展方法即可获得所有服务。然而,一旦您获得了服务,您将需要一些其他的方法来区分它们,例如一个表示唯一名称的属性,这是ASP.Net团队一直遵循的模式
您可以在Identity framework v3中看到一个带有令牌提供程序的示例
- ,即“提供者”
- ,它使用令牌管理器
ProviderBase
)更通用。您可以向DI框架注册多个相同的服务,只需请求注册类型的IEnumerable
,或者使用GetRequiredServices
扩展方法即可获得所有服务。然而,一旦您获得了服务,您将需要一些其他的方法来区分它们,例如一个表示唯一名称的属性,这是ASP.Net团队一直遵循的模式
您可以在Identity framework v3中看到一个带有令牌提供程序的示例
- ,即“提供者”
- ,它使用令牌管理器