我使用NSIS构建安装程序,并且作为该安装程序的一部分,我获得了WCF服务(即Url,用户名和密码)的详细信息。我需要验证这些细节。如何在C++中创建Web/wcf服务客户端?
在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
。
我添加了一个“Web引用”的项目,但有没有的ServiceClient
在ServiceReference
命名空间中的等价物。这:
ServiceReference::ServiceClient ^service = gcnew ServiceReference::ServiceClient(httpsBinding, endpointAddress);
不作为编译:
'ServiceClient':不是 '服务引用'
那么,如何创建客户端中的一员?
您是否已将“using namespace ServiceMainNamespace”指令与您添加的Web服务相关? – alexbuisson
@alexbuisson - 我似乎无法找到该名称空间。你可以添加一个链接到文档。 – ChrisF
对不起,该命名空间不存在:)这只是一个例子,回想一下在C#中ServiceClient类来自程序集,并且您应该能够找到它的名称。 Thaa程序集应该在你的C++/CLI的参考列表中,并且在使用'ServiceClient'的.cpp文件中,你必须放置一个using指令。就像在C#中一样! – alexbuisson