IOC との特定のインターフェイスに複数のデータ プロバイダーを登録するにはどうすればよいですか (私は Ninject を使用しますが、一般的には答えることができます)。たとえば、 andISettingsRepository
によって実装されます。JsonSettingsProvider
XmlSettingsProvider
データ (この場合は設定) を XML から JSON に移行しており、アプリケーションで両方を同時に使用する必要があります (どちらかを選択するのではなく、実行時に両方を同時に使用する必要があります)。したがって、シリアル化されたものを読み取り、JSON プロバイダーを使用してそれを JSON としてシリアル化するには、XML ベースのプロバイダーが必要です。
public class WebSettings
{
[Inject]
private ISettingsRepository _repository;
private void Load()
{
_repository = DependencyResolver.Current
.GetService<ISettingsRepository>();
...
これで、次のような登録ができます。
kernel.Bind<ISettingsRepository>()
.To<XmlSettingsProvider>()
.InRequestScope();
うまくいけば、あなたは私の言いたいことを理解します。