WCF,Xamarin - 无法将类型'void'隐式转换为'System.Collections.Generic.List'

时间:2017-12-29 13:32:41

标签: c# wcf xamarin.forms

尝试为我的xamarin表单应用程序制作WCF Web服务。它应该只是从sqlserver中检索文本并用它填充标签。 wcf方法返回ListOfflineContent个对象,因为sql请求可能有多个结果。 但是当我尝试从客户端调用该方法时,我有这个:

  

无法隐式转换类型'void'   'System.Collections.Generic.List'

我想我错过了一些东西,但无法弄清楚是什么。

这是项目结构和代码。

solution structure

IBienEtreService.cs

[ServiceContract]
public interface IBienEtreService
{
   [OperationContract]
   List<OfflineContent> GetDataContent(string title);
}

[DataContract]
public class OfflineContent
{
   [DataMember]
   public string Title { get; set; }
   [DataMember]
   public string Text { get; set; }
   [DataMember]
   public string Picture { get; set; }
}

BienEtreService.svc

public List<OfflineContent> GetDataContent(string title)
{
   List<OfflineContent> ContentList = new List<OfflineContent>();
   con.Open();
   SqlCommand cmd = new SqlCommand("select * from dbo.Content where title = @title", con);
   cmd.Parameters.AddWithValue("@title", title);
   SqlDataReader reader = cmd.ExecuteReader();
   while (reader.Read())
   {
      OfflineContent content = new OfflineContent
      {
         Title = reader.GetString(1),
         Text = reader.GetString(2)
      };
      ContentList.Add(content);
    }
    return ContentList;
}

此时ContentList包含我需要的内容。

问题来自Lef_methode.xaml.cs

public partial class Left_Methode : ContentPage
{
    static BienEtreServiceClient client1 = new BienEtreServiceClient();
    public Left_Methode ()
    {
       InitializeComponent ();
       //This fails
       List<Content> list = client1.GetDataContentAsync("methode");
       Mthd_txt.Text = "It's the label, should contain something like list[1].texte";
    }
}

我看到GetDataContentAsync的返回类型(我必须使用Async?我不能直接调用没有后缀的方法)在Reference.cs中是无效的,这是自动生成的......我需要一个{{1返回类型。

有人能告诉我正确的方法吗?这场斗争是真实的,经过长时间的休息,我回到了开发阶段。

0 个答案:

没有答案