В .NET Core логика Startup
выполняется только один раз при, э-э, запуске. 100
Если я вас правильно понимаю, вам нужно уметь: во время выполнения переключаться междунесколько провайдеров хранения, которые, в вашем случае, различаются по своей базовой строке подключения.
Нет ничего "в коробке", которое бы включило этот сценарий для вас, но возможно , если использоватьправильные точки расширения и напишите правильный сантехника для себя.В частности, вы можете предоставить настраиваемую абстракцию на уровне IStatePropertyAccessor<T>
, и ваш вышестоящий код будет продолжать работать на этом уровне абстракции и быть неискушенным.
Вот реализация, которую я начал,включает в себя то, что я называю ConditionalStatePropertyAccessor
.Это позволяет вам создать своего рода составной IStatePropertyAccessor<T>
, который настроен как с экземпляром по умолчанию / резервный, так и с N другими экземплярами, которые снабжены функцией выбора, которая позволяет им просматривать входящий ITurnContext
и, основываясь на некоторых деталях из любой части поворота, указывают, что это тот экземпляр, который следует использовать для охвата поворота. Посмотрите на тесты, и вы увидите, как я настраиваю образец, который выбирает реализацию на основе, например, ChannelId
.
В данный момент я немного занят и могуне отправлю это прямо сейчас, но я собираюсь упаковать его и отправить в конце концов.Однако, если вы считаете, что это будет полезно, просто скопируйте код для собственного использования.?