потреблять. NET WS / SOAP два сервера с одинаковой структурой, но разными именами методов - PullRequest
1 голос
/ 05 мая 2020

Я подключаюсь к двум SAP WS / SOAP, которые имеют одинаковую структуру (одинаковый ввод, одинаковый вывод), но разные конечные точки и имена методов.

Я импортировал оба дескриптора WS в качестве веб-ссылки и теперь я использую их примерно так:

        bool pBG = true;

        sapWSBG.ZbgPogon inputBG = new sapWSBG.ZbgPogon();
        sapWSBG.ZbgPogonResponse responseBG = new sapWSBG.ZbgPogonResponse();

        sapWSRO.ZroPogon inputRO = new sapWSRO.ZroPogon();
        sapWSRO.ZroPogonResponse responseRO = new sapWSRO.ZroPogonResponse();

        if (pBG)
        {
            //set input params
            inputBG.IntHeader = getHeader((string)pPlant);
            inputBG.Pogon = (String)pPlant;
            LogXml(inputBG, "input");

            //make the call
            responseBG = clientBG.ZbgPogon(inputBG);
            LogXml(responseBG, "response");
        }
        else
        {
            //set input params
            inputRO.IntHeader = getHeader((string)pPlant);
            inputRO.Pogon = (String)pPlant;
            LogXml(inputRO, "input");

            //make the call
            responseRO = clientRO.ZroPogon(inputRO);
            LogXml(responseRO, "response");
        }

        //process data in response(s)
        ...

Чтобы не создавать две отдельные сборки и не дублировать один и тот же код, есть ли способ сделать только запрос к каждому серверу, но сохраняя остальной код такой же?

1 Ответ

0 голосов
/ 18 июня 2020

На самом деле для этого есть решение с использованием типа Dynami c. К сожалению, сборки SQL не могут использовать это с ограниченными библиотеками, которые имеет SQL движок

.
...