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

问题描述 投票:-1回答:1

所以我遇到的问题是,当我在我的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.

为什么我会收到这个错误?该方法设置为字符串,我试图将其分配给字符串。

c# azure wcf methods
1个回答
2
投票

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

service1Client.GetDataCompleted += service1Client_GetDataCompleted;
public void service1Client_GetDataCompleted(object sender, wsService1.GetDataCompletedEventArgs e)
{
   string Data = e.Result.ToString();
}
© www.soinside.com 2019 - 2024. All rights reserved.