Создать собственный канал для динамического вызова рабочих процессов - PullRequest
1 голос
/ 23 июня 2011

Мне нужно создать обычную фабрику каналов для вызова служб WCF Wrokflow, размещенных в IIS.Только во время выполнения я буду в состоянии знать, какой рабочий процесс должен быть вызван и какой метод должен быть вызван.Может кто-нибудь помочь с примером для того же?

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Какую информацию об услугах рабочего процесса вы имеете на клиенте? Если у вас есть контракт (сервисный контракт, такой как контракт, сгенерированный svcutil / add ссылкой на сервис при указании на сервис xamlx) и адрес конечной точки, вы можете просто напрямую использовать фабрику каналов. Например, стандартное приложение службы рабочего процесса WCF объявляет конечную точку по адресу xamlx с basicHttpBinding.

string address = "http://localhost:27962/Service1.xamlx";
Binding binding = new BasicHttpBinding();
ChannelFactory<IService> factory = new ChannelFactory<IService>(binding, new EndpointAddress(address);
IService proxy = factory.CreateChannel();
var result = proxy.GetData(new GetDataRequest { @int = 1234 });

Если у вас нет контракта / привязки, у вас есть только адрес xamlx, и вы хотите динамически создавать прокси во время выполнения, вы можете использовать что-то вроде динамический прокси Vipul для создания прокси во время выполнения и вызовите сервисные операции, используя методы динамического прокси.

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

Vipuls динамический прокси (http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx) отлично работает .. Спасибо человек ..

...