У меня есть проект, в котором я экспериментирую с DI. Я использую Unity, и кажется, что все работает хорошо для обычных сборок и инъекций.
Я пытаюсь еще больше разорвать зависимости с помощью служб WCF. Служба WCF, которую я хочу внедрить, в настоящее время создается во время выполнения без использования DI, и я не использую прокси-серверы, сгенерированные VS .net:
MyService = new ChannelFactory<IMyService>("BasicHttpBinding_IMyService").CreateChannel();
Конечная точка для вышеупомянутого находится в web.config:
<endpoint address="http://localhost:35806/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="Interfaces.IMyService" name="BasicHttpBinding_IMyService" />
Я пытаюсь выяснить, как сопоставить эту службу WCF с интерфейсом через web.config, чтобы я мог использовать инжектор конструктора
В web.config нормальное отображение происходит с использованием «mapTo», где вы должны указать псевдоним интерфейса и псевдоним для класса, который вы ранее определили.
<type type="IMyService" mapTo="MyService">
<lifetime type="singleton"/>
</type>
Поскольку прокси службы WCF создается динамически во время выполнения, у меня нет этой ссылки на класс «MyService», вместо этого ему необходимо получить конечную точку "BasicHttpBinding_IMyService"
для службы.
Любые идеи о том, как это можно сделать?