Я пытаюсь подключить WCF с помощью внедрения зависимостей. Все примеры, которые я нашел, основаны на предположениях, что вы либо используете службу .svc (ServiceHostFactory), либо используете app.config для настройки контейнера. Другие примеры также основаны на том, что контейнер передается классам.
Я бы хотел решение, где контейнер не передается (не тесно связан с Unity). Где я не использую конфигурационный файл для настройки контейнера и где я использую сервисы, размещенные самостоятельно.
Проблема в том, как я понимаю, в том, что ServiceHost принимает тип реализации службы в качестве параметра, так что же отличается от использования InstanceProvider?
Решение, которое я нашел на данный момент, состоит в том, чтобы зарегистрировать ServiceHost (или специализацию) для регистрации типа с именем (например, container.RegisterInstance<Type>("ServiceName", typeof(Service);
).
А затем container.RegisterType<UnityServiceHost>(new InjectionConstructor(new ResolvedParameter<Type>("ServiceName")));
, чтобы зарегистрировать ServiceHost.
Есть ли лучшие решения там? Я, пожалуй, в своих предположениях.
С уважением,
Michael