尝试为我的xamarin表单应用程序制作WCF Web服务。它应该只是从sqlserver中检索文本并用它填充标签。
wcf方法返回List
个OfflineContent
个对象,因为sql请求可能有多个结果。
但是当我尝试从客户端调用该方法时,我有这个:
无法隐式转换类型'void' 'System.Collections.Generic.List'
我想我错过了一些东西,但无法弄清楚是什么。
这是项目结构和代码。
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返回类型。
有人能告诉我正确的方法吗?这场斗争是真实的,经过长时间的休息,我回到了开发阶段。