Как создать клиент службы Web/wcf в С++? - программирование
Подтвердить что ты не робот

Как создать клиент службы Web/wcf в С++?

Я использую NSIS для сборки установщика и как часть этого установщика, я получаю детали для службы WCF (например, URL, имя пользователя и пароль). Мне нужно проверить эти данные.

В С# я создаю ссылку на службу и просто делаю следующее:

var proxy = new ServiceClient(httpsBinding, serviceEndpointAddress);
proxy.ClientCredentials.UserName.UserName = userName;
proxy.ClientCredentials.UserName.Password = password;

try
{
    proxy.Open();
}
catch (EndpointNotFoundException ex)
{
    // Return the end point not valid
}
etc

Теперь мне нужно сделать это на С++, чтобы его можно было вызвать из NSIS (я исследовал методы вызова С# из NSIS, и все они кажутся чрезмерными для того, что я хочу сделать). Мне удалось преобразовать код, который генерирует привязку и адрес конечной точки, но я застрял на создании ServiceClient.

Я добавил в проект "Веб-ссылку", но там нет эквивалента ServiceClient в пространстве имен ServiceReference. Это:

ServiceReference::ServiceClient ^service = gcnew ServiceReference::ServiceClient(httpsBinding, endpointAddress);

не компилируется как:

"ServiceClient": не является членом "ServiceReference"

Итак, как мне создать клиент?

4b9b3361

Ответ 1

В конце концов я пошел с использованием NSIS "Call.NET DLL methods plugin" , который был действительно излишним для того, что мне нужно было сделать, но мне нужно решение, которое сработало, и у меня не хватило времени.

Ответ 2

Вы пробовали gSOAP?

http://gsoap2.sourceforge.net/

что мы используем для доступа к WS * из программ на С++.

Ответ 3

вы можете хорошо поработать, Создайте С# DLL, используйте regasm для регистрации этой DLL, то вы можете использовать его из своей программы на С++.