Я создаю DLL, назовем ее mydll.dll, и в ней мне иногда нужно вызывать методы из веб-службы, myservice. mydll.dll построен с использованием C # и .NET 3.5.
Чтобы использовать myservice из mydll, я добавил службу в Visual Studio 2008, которая более или менее аналогична использованию svcutil.exe. Это создает класс, который я могу создать, и добавляет конфигурации конечных точек и привязок в mydll app.config.
Проблема здесь в том, что mydll app.config никогда не загружается. Вместо этого загружается app.config или web.config программы, в которой я использую mydll.
Я ожидаю, что mydll будет развиваться, поэтому я с самого начала отделил его функциональность от остальной части моей системы. В ходе этой эволюции он, вероятно, добавит больше веб-сервисов, к которым он будет обращаться, исключая ручные способы копирования и вставки для решения этой проблемы.
Я рассмотрел несколько возможных подходов к решению этой проблемы:
- Вручную скопируйте конечные точки и привязки из mydell app.config в целевой EXE-файл или веб-файл .config.
Объединяет модули, но не гибко - Включите конечные точки и привязки из mydll app.config в целевой .config, используя configSource (см. здесь). Также добавьте связь между модулями
- Программно загрузите mydll app.config, прочтите конечные точки и привязки и создайте экземпляры Binding и EndpointAddress.
- Используйте другой инструмент для создания локального интерфейса для myservice
Я не уверен, куда идти. Вариант 3 звучит многообещающе, но, как выясняется, это много работы и, вероятно, внесет несколько ошибок, поэтому сомнительно, что он окупается. Я также не знаком ни с одним инструментом, кроме канонического svcutil.exe.
Укажите плюсы и минусы вышеуказанной альтернативы, дайте советы по реализации любого из них или предложите другие подходы.
Спасибо,
Асаф