У меня есть служба WCF, которая будет вызываться от разных клиентов.Служба WCF с несколькими реализациями зависимостей
Внутренне служба WCF использует ISomething. Существует несколько реализаций этого интерфейса, и мне нужно, чтобы некоторые клиенты использовали одну реализацию и другие клиенты для использования другой реализации.
Кроме того, я использую Unity и контейнер IoC. Я бы обычно настраивал фабрику, позволяющую разрешать работу службы wcf вместе с графиком зависимости, но если у меня есть несколько реализаций зависимости, я не думаю, что смогу пойти с этим подходом и прибегнуть к разрешению ISomething внутри службы (эффективно используя Unity как локатор сервисов), что не является идеальным.
Так что нужно работать
(1), как определить, какая реализация ISomething клиенту необходимо (например, использовать заголовок, передать строку реализации в каждом методе, провести несколько конечных точек и т.д.)
(2) как вступает Unity?
Это довольно изящно, но мне все еще нужно, чтобы служба узнала, какую реализацию КЛИЕНТ хочет использовать. Как передать эту информацию, чтобы к ней можно было получить доступ достаточно рано, чтобы быть доступным, когда я разрешаю эту услугу? –
Является ли служба защищенной путем какой-либо аутентификации? Если это так, вы можете использовать аутентифицированный директор в качестве ключа для выбора правильной услуги. В противном случае пользовательский заголовок звучит как разумный вариант. –