用于调用Web服务的C#类的C ++包装类

时间:2017-04-10 21:35:58

标签: c++ wcf c++-cli clr wwsapi

所以,我在c#中编写了一个Web服务,它有一个签名哈希的方法。此Web服务是WCF服务应用程序。 然后,我创建了一个c#Console应用程序,我在其中编写了一个使用此Web服务的函数。 调用Web服务的函数声明是:

class Program
{
public byte[] callWS(string alias, byte[] myHash,string myPassword)
{
    IhashSignSVCClient client = new IhashSignSVCClient();
        byte[] signedData= client.SignandReturn(alias, myhash, myPassword);
        if (signedData != null)
        {
            Console.WriteLine(signedData);
            return signedData;
        }
        return null;

 }
}

此网络服务正常。现在我想在这个c#方法上构建一个c ++包装类,因为我想从非托管代码中调用这个Web服务,我认为创建一个c ++包装类是个好主意。任何人都可以帮助我使用这种包装类的结构吗?我不太了解c ++和c#之间的转换。我已经创建了一个C ++ CLR类库,其中包含一个ref类,它将包含我的c ++方法来调用这个c#方法,但是我仍然对这个函数的参数类型有一些问题。

1 个答案:

答案 0 :(得分:1)

如果你想坚持原生(非托管)C ++(而不是使用C ++ / CLI),你最好的选择可能是WWSAPI,因为它可以直接从C ++调用WCF服务。虽然它是基于C的API,但从C ++中使用它会有点麻烦。

否则,有大量关于C ++ / CLI here的文档;特别是marshaling