我是Silverlight和WCF平台的新手。我想使用Silverlight客户端从服务器获取一些数据。该解决方案有一个WCF RIA服务类库,用于读取数据并将其序列化为JSON字符串,但我无法弄清楚如何创建数据请求,运行服务器方法并返回用于反序列化的JSON字符串。客户方。
我花了几个小时搜索,没有合理的解决方案。直到现在我已经这样做了:
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "data/{id}")]
public string getLogs(string server)
{
EventLog[] remoteEventLogs = EventLog.GetEventLogs(System.Environment.MachineName);
ObservableCollection<string> logs = new ObservableCollection<string>();
for (int i = 0; i < remoteEventLogs.Length; i++)
{
logs.Add(remoteEventLogs[i].Log);
}
return serializer(logs); //helper function using DataContractJsonSerializer
}
但我无法理解正在发生的事情。请帮忙!
答案 0 :(得分:0)
如果您使用的是RIA服务,则只需执行此操作:
[Invoke]
public string getLogs(string server)
{
...
return serializer(logs);
}
现在你可以从Silverlight调用getLogs了。但你也可以使用:
[Invoke]
public IEnumerable<string> getLogs(string server)
{
...
return logs;
}
这样,您可以返回列表而无需将其序列化为json。