我有一个存储过程,它返回SQL Server中的databasemail状态,返回字符串“stopped”或“started”。我必须在C#,Silverlight和WCF数据服务中使用它。
这是我的代码:
contex.BeginExecute<String>(new Uri(uri2), OnQueryComplete3, null);
...
private void OnQueryComplete3(IAsyncResult result)
{
grLog.ItemsSource = contex.EndExecute<String>(result).ToList<String>();
}
我有错误:
处理响应流时出错。 XML元素包含混合 内容。
服务操作:
[WebGet]
public IQueryable<String> Status_Serwer()
{
return CurrentDataSource
.status_serwer()
.AsQueryable();
}
我发现“.NET 4.0仍然不支持返回原始或复杂类型(或那些集合)的服务操作的响应的实现。”在这个duscussion http://go4answers.webhost4life.com/Example/incoking-webget-throws-exception-56000.aspx。这是真的吗?
答案 0 :(得分:0)
IQueryable通常用于尚未执行的列表,并且需要交互式迭代。因为您在服务器上一起提取数据,所以最好拉出整个状态记录列表,然后将它们发送给您的客户端。尝试在响应中使用List而不是IQueryable。请注意,List是可序列化的。
假设“CurrentDataSource.status_serwer()”返回一个可枚举的字符串列表,这段代码可能会起到作用:
[WebGet]
public List<String> Status_Serwer()
{
return CurrentDataSource
.status_serwer()
.ToList();
}