gpt4 book ai didi

c# - IOC与MVC同一个接口(interface)多次注册

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:49 24 4
gpt4 key购买 nike

如何为 IOC 的某个接口(interface)注册多个数据提供程序(我使用 Ninject,但你可以一般地回答),例如 ISettingsRepository 是由 JsonSettingsProviderXmlSettingsProvider

我正在将我的数据(在本例中为设置)从 XML 迁移到 JSON,并且需要在应用程序中同时使用它们(不是在其中一个之间进行选择,而是在运行时同时使用它们)。因此,我需要基于 XML 的提供程序来读取序列化的内容,并使用 JSON 提供程序将其序列化回 JSON。

public class WebSettings
{
[Inject]
private ISettingsRepository _repository;

private void Load()
{
_repository = DependencyResolver.Current
.GetService<ISettingsRepository>();

...

现在我有这样的注册:

kernel.Bind<ISettingsRepository>()
.To<XmlSettingsProvider>()
.InRequestScope();

希望你明白我的意思。

最佳答案

我试过但无法使用 Factory 做到这一点。

但是你可以看看 stackoverflow 上的这个帖子

Ninject : Resolving an object by type _and_ registration name/identifier

关于c# - IOC与MVC同一个接口(interface)多次注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564550/

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