Как мне создать клиент службы web / wcf на C ++?

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

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

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's not valid
}
etc

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

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

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

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

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

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

14

Решение

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

http://gsoap2.sourceforge.net/

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

0

Другие решения

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

0

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

0
По вопросам рекламы [email protected]