0

私は Silverlight と WCF プラットフォームの初心者です。Silverlight クライアントを使用してサーバーからデータを取得したいと考えています。ソリューションには、データを読み取って JSON 文字列にシリアル化するための WCF RIA サービス クラス ライブラリがありますが、データの要求を作成し、サーバー メソッドを実行し、デシリアライゼーションの 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 に答える