2015-03-26 2 views
2

У меня есть служба маршрутизации WCF с двумя базовыми услугами. То, что я хочу получить, - это объединение ответов от двух бэкэнд-сервисов и возврат одного агрегированного ответа (который состоит из каждой из двух служб, вызываемых маршрутизатором).WCF Router, который объединяет/агрегирует многие основные ответы службы

Каждая из этих двух служб возвращает массив строк. Например, если первая услуга возвращает new string[2] { "red", "green" }, а результат второго - new string[2] { "table", "chair" }, весь окончательный ответ, который будет передаваться от маршрутизатора обратно клиенту, - new string[4] { "red", "green", "table", "chair" }.

Заранее благодарен!

ответ

1

Если я не упустил что-то из вашего вопроса, это следующая вещь, которую вы ищете?

Предполагая, что метод WCF сервиса под названием GetAggregatedResponse:

public string[] GetAggregatedResponse() 
{ 
    string[] service1Response = callService1AndGetResult(); 
    string[] service2Response = callService2AndGetResult(); 
    string[] aggregatedResponse = service1Response.Concat(service2Response).ToArray(); 
    // Or if you would like to remove duplicates from the results: 
    // string[] aggregatedResponse = service1Response.Union(service2Response).ToArray(); 
    return aggregatedResponse; 
} 
+0

Это именно та вещь, что я хочу сделать. Более того, я бы сделал это таким образом, если нет службы маршрутизации WCF. Сделка заключается в том, чтобы заставить службу маршрутизации WCF суммировать/объединять/объединять такие два запроса. Это потому, что у меня есть два сервиса WCF и маршрутизатор в качестве интерфейса. Если есть какие-либо недоразумения, пожалуйста, дайте мне знать. – kseen

+0

Я действительно не понимаю. Если ваша служба маршрутизации WCF «обращена к клиенту», это не может просто вызвать другие службы в ее реализации, а затем объединить результаты, как указано выше? –

+1

То, что не существует «реализации службы WCF Routing». Это новая функция WCF 4.0. Для этой цели отвечает класс 'System.ServiceModel.Routing.RoutingService', – kseen

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