Несколько строк подключения, один репозиторий с внедрением зависимостей - PullRequest
0 голосов
/ 21 июня 2011

Прямо сейчас у меня есть базовый IRepository, который принимает IConnect (содержит строковое значение). Я сталкиваюсь с проблемой получения моего DI (структура карты), чтобы определить, какую строку подключения использовать. Теоретически, если я использую атрибут на объекте, я мог бы написать реестр / сканер, который определяет это, но мне интересно, есть ли более простой способ сделать это?

сейчас у меня что-то вроде этого

ObjectFactory.Initialize(factory =>
{
    factory.For<IConnect>().Singleton().Use<ConnectToMarket>()
        .Ctor<string>("connectionString")
        .Is(_marketConnectionString);
    //and some other stuff
});

Идеи

1 Ответ

3 голосов
/ 22 июня 2011

Вы можете получить разные репозитории из разных интерфейсов. Скажем, у вас есть IMarketRepository, который построен на строке подключения к рынку. Таким образом, все репозитории, использующие marketconnectionstring, построены с этой строкой соединения (при условии, что вы выполните регистрацию правильно).

Я предполагаю, что вам не нужно использовать один и тот же репозиторий для нескольких строк подключения?

Другим решением может быть создание нескольких реализаций IConnectionString или что-то, что вы можете указать в конструкторе.

Оба решения не очень хороши, я должен сказать.

...