0

我是 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

}

但我无法理解正在发生的事情。请提供任何帮助!

4

1 回答 1

0

如果您使用 RIA 服务,您只需执行以下操作:

[Invoke]
public string getLogs(string server)
{
    ...
    return serializer(logs);
}

现在您可以从 Silverlight 调用 getLogs。但你也可以使用:

[Invoke]
public IEnumerable<string> getLogs(string server)
{
    ...
    return logs;
}

这样,您返回列表而无需将其序列化为 json。

于 2012-05-22T10:24:53.093 回答