2014-02-19 3 views
0

Сценарий: Я потребляющие веб-сервис, в моей библиотеке классов проекта и создает привязку имя и конечную точку в app.config. Если я ссылаюсь на библиотеку классов в моем проекте пользовательского интерфейса, я также должен включить такую ​​же конфигурацию в web.config. Моя проблема заключается в том, что я не хочу включать эту конфигурацию в web.config из-за зависимости. Я хочу использовать сборку самостоятельно, без какой-либо зависимости.Потребляя веб-служба в библиотеке классов

Мое решение подход: Когда я создаю экземпляр класса прокси-сервера в проекте библиотеки классов он показывает мне конструктор передать привязку и конечную точку. Пример

wsProxy proxyClass = new wsProxy(System.ServiceModel.Channels.Binding binding, System.ServiceModel.Endpoint endpoint) 

был интересно, если я могу передать ту же переплет и конечную точку, что я имею в app.config, так что я не должен включать либо в app.config и web.config.

+0

Привет, я внес некоторые изменения в ваше сообщение. Для будущих вопросов постарайтесь учесть эти моменты: нет тегов в заголовке, теге соответственно (всегда полезно использовать языковой тег, если он применяется), придерживаться кода точки и формата. Это упростит чтение ваших сообщений другими пользователями :) –

+0

Спасибо за ваш комментарий. Я запомню это. Это мой первый пост в stackoverflow. – Santosh

ответ

0

Да, вы можете создавать эти классы без согласования конфигурации в основном файле .config. Где вы получаете эту конфигурацию, зависит от вас; это может быть App.config, файл конфигурации YML, база данных и т. д. Пока ваш код удовлетворяет требованиям конструктора для создаваемых вами классов, все будет в порядке.

0

С WCF все, что определено в файле конфигурации, может быть выполнено программно.

Вам просто нужно создать объекты, необходимые для создания экземпляра вашего клиента. В зависимости от WCF функции, которые вы хотите, чтобы ваше приложение будет используя, вы будете нуждаться в классы, как EndpointAddress, AddressHeaderCollection, Uri, EndpointIdentity (DnsEndpointIdentity или SpnEndpointIdentity), Binding (WsHttpBinding, NetTcpBinding и т.п.). И вы можете захотеть, чтобы эти объекты были заполнены из раздельного централизованного хранилища конфигурации, такого как база данных.

Смежные вопросы