【问题标题】:Transfer JSON from Server to Client via WCF RIA Service通过 WCF RIA 服务将 JSON 从服务器传输到客户端
【发布时间】:2012-05-22 18:24:53
【问题描述】:

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

}

但我无法理解正在发生的事情。请帮忙!

【问题讨论】:

    标签: json silverlight wcf-ria-services


    【解决方案1】:

    如果您使用 RIA 服务,您只需这样做:

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

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

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

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

    【讨论】:

    • 其实问题是我在同一个VS解决方案中有一个Silverlight应用程序和一个WCF RIA Service库,我想使用Service库读取事件日志。那么您知道如何向 WCF RIA 服务的服务器端发送 HTTP 请求,然后让客户端和 Silverlight 应用程序接收事件日志数据吗?
    猜你喜欢
    • 2013-11-11
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多