Sto utilizzando NSIS per creare un programma di installazione e come parte di tale programma di installazione ottengo i dettagli per un servizio WCF (vale a dire Url, nome utente e password). Ho bisogno di convalidare questi dettagli.Come posso creare un client di servizio web/wcf in C++?
In C# ho creare un riferimento di servizio e semplicemente effettuare le seguenti operazioni:
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
Ora ho bisogno di fare questo in C++ in modo che possa essere chiamato da NSIS (ho studiato metodi di chiamare C# da NSIS e sembrano tutti eccessivi per quello che voglio fare). Sono riuscito a convertire il codice che genera l'associazione e l'indirizzo del punto finale, tuttavia sono bloccato sulla creazione dello ServiceClient
.
Ho aggiunto un "Riferimento Web" al progetto ma non c'è l'equivalente di ServiceClient
nello spazio dei nomi ServiceReference
. Questo:
ServiceReference::ServiceClient ^service = gcnew ServiceReference::ServiceClient(httpsBinding, endpointAddress);
non può essere compilato come:
'serviceclient': non è un membro di 'ServiceReference'
Così come creo il cliente?
Hai inserito la direttiva 'using namespace ServiceMainNamespace' relativa al servizio web che hai aggiunto? – alexbuisson
@alexbuisson - Non riesco a trovare quello spazio dei nomi. Puoi aggiungere un link alla documentazione. – ChrisF
Ok scusa, quel namespace non esiste :) era solo un esempio per ricordare che in C# la classe ServiceClient proviene da un assembly e dovresti essere in grado di trovarne il nome. L'assembly Thaa dovrebbe essere incluso nell'elenco di riferimento di C++/CLI e nel file .cpp in cui si utilizza 'ServiceClient' è necessario inserire una direttiva using. Come in C#! – alexbuisson