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 から呼び出すことができるようにする必要があります (NSIS から C# を呼び出す方法を調査しましたが、それらはすべてやりたいことに対してやり過ぎのようです)。バインディングとエンド ポイント アドレスを生成するコードを変換することはできましたが、ServiceClient
.
ServiceClient
プロジェクトに「Web 参照」を追加しましたが、ServiceReference
名前空間に相当するものはありません。これ:
ServiceReference::ServiceClient ^service = gcnew ServiceReference::ServiceClient(httpsBinding, endpointAddress);
次のようにコンパイルされません:
'ServiceClient': 'ServiceReference' のメンバーではありません
では、クライアントを作成するにはどうすればよいでしょうか。