Использовать новый ChannelFactory <TChannel>(строка), если конфиг в строке? - PullRequest
3 голосов
/ 20 апреля 2011

Я хотел бы использовать ChannelFactory для создания клиента WCF для данной конечной точки.

Проблема в том, что у меня нет web.config или app.config,но у меня есть весь <system.serviceModel> блок XML в строке.

Я не хочу вручную анализировать это и программно создавать привязки и конечные точки, когда у меня уже есть конфигурация.

Есть ли способ сказать ChannelFactory просто использовать этот блок в качестве конфигурации?Или хотя бы создать ServiceEndpoint ?

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Существует методика, описанная в этой записи блога .

Это не так просто, как одна строка кода, но, по крайней мере, работает на уровне выше, чем необработанный XML.

0 голосов
/ 22 июня 2011

Нашли лучшее решение: ConfigurationChannelFactory<TChannel> позволяет создать канал WCF из пользовательской конфигурации.

0 голосов
/ 20 апреля 2011

Вы можете вручную создать привязку и адрес конечной точки, чтобы создать экземпляр CHannelFactory, что-то вроде:

   BasicHttpBinding binding = new BasicHttpBinding() { 
       Name = "Bindingname"
       // Goes all the necessary members to set.
   };

   EndpointAddress endpoint = new EndpointAddress("http://serviceendpoint.com");
   ChannelFactory<IContract> factory = new ChannelFactory<IContract>(binding, endpoint);

Затем вы можете попробовать использовать factory.CreateChannel (), чтобы изучить его члены перед ServiceEnpoint, Behaviors и т. Д.

Надеюсь, это поможет, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...