2012-05-22 1 views
0

Silverlight 및 WCF 플랫폼에 대한 완전한 초보자입니다. Silverlight 클라이언트를 사용하여 서버에서 데이터를 가져 오려고합니다. 이 솔루션에는 데이터를 읽고이를 JSON 문자열로 직렬화하는 WCF RIA 서비스 클래스 라이브러리가 있지만 데이터 요청을 작성하고 서버 메소드를 실행하고 JSON 문자열을 Deserialization에 반환하는 방법을 알 수 없습니다. 고객 입장에서.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 

} 

을하지만 무슨 일이 일어나고 있는지 주위에 내 머리를 정리하고 수 없습니다. 어떤 도움을주십시오!

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

을 그리고 지금 당신은 실버 라이트에서 getLogs를 호출 할 수 있습니다 : 당신은 RIA 서비스를 사용하는 경우

답변

0

, 당신은이 작업을 수행해야합니다. 하지만 다음과 같이 사용할 수도 있습니다 :

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

이렇게하면 json으로 직렬화하지 않고 목록을 반환 할 수 있습니다.

+0

사실, 문제는 동일한 VS 솔루션에 Silverlight 응용 프로그램과 WCF RIA 서비스 라이브러리가 있고 서비스 라이브러리를 사용하여 이벤트 로그를 읽는 것입니다. 그렇다면 WCF RIA 서비스의 서버 쪽에서 HTTP 요청을 보낸 다음 클라이언트를 가지고 Silverlight 앱에서 이벤트 로그 데이터를받을 수있는 방법을 알고 있습니까? – varagrawal