为什么在我的Web服务中调用此方法时出现错误“无法将类型'void'隐式转换为'string'的错误?

时间:2019-03-31 00:33:58

标签: c# azure wcf methods

所以我遇到的问题是,当我在WCF服务引用中调用一个方法时,得到带红色下划线的代码“无法将类型'void'隐式转换为'string'”。最初,我以为我不小心将webservice方法设置为public void GetData(),但是经过进一步的检查,我知道并非如此。我想调用的WCF方法是:

    public string GetData()
    {
       return "StringRecieved";
    }

运营合同的定义如下:

    [ServiceContract]
        public interface IService1
        {
            [OperationContract]
            string GetData(); 
        }

我调用该方法的位置在另一个应用程序中。

    Service1Client.EndpointConfiguration endpointConfiguration = new Service1Client.EndpointConfiguration();
        Service1Client service1Client;
        service1Client = new Service1Client(endpointConfiguration);

        string Data = service1Client.GetDataAsync(); //This is where I'm getting my error.

为什么会出现该错误?该方法设置为字符串,我正在尝试将其分配给字符串。

1 个答案:

答案 0 :(得分:2)

对于异步,您需要添加事件GetDataCompleted和方法。

service1Client.GetDataCompleted += service1Client_GetDataCompleted;
public void service1Client_GetDataCompleted(object sender, wsService1.GetDataCompletedEventArgs e)
{
   string Data = e.Result.ToString();
}