一个人如何为 IOC 的某个接口注册多个数据提供者(我使用 Ninject,但您一般可以回答),例如ISettingsRepository
由JsonSettingsProvider
and实现XmlSettingsProvider
。
我正在将我的数据(在这种情况下为设置)从 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();
希望你明白我的意思。