2012-07-18 58 views
0

我們正在開始一個新的大型項目,並打算在Silverlight中執行UI。我們希望能夠在不重寫整個服務端點的情況下切換到HTML/JQuery。適用於Silverlight/JavaScript的正確服務

Microsoft Service Stack中的標準方法是什麼?

原諒這個問題的廣度。我是Silverlight的新手。

我的傾向是傾向於RESTFul JSON,我已經知道如何處理MVC控制器。但Silverlight似乎想要(需要?)WCF服務。我查看了啓用AJAX的WCF服務,但似乎有Webforms/ScriptManager。

請指點我正確的方向。最終目標是擁有一個可支持JavaScript和Silverlight客戶端的服務端點。如果沒有相對簡單的解決方案,那也是一個很好的答案。

謝謝!

+0

什麼讓你不能創建兩個非常薄的前端服務?一個svc文件,使用wcf作爲Silverlight,然後是jQuery的瘦控制器。那麼這兩個瘦服務都會調用一些容納所有邏輯的底層公共類? – JamesF 2012-07-18 18:05:07

+0

@JamesF - 沒有,本身。但似乎這樣做令人費解。我應該能夠構建一個結構良好,符合標準的服務端點,並將其與兩個客戶端一起使用,或者這樣做有道理。 – 2012-07-18 18:20:02

回答

0

下面介紹如何使用Silverlight調用json ashx服務。

您可以使用WebClient調用json服務並接收流。 然後,您可以使用JsonValue和JsonArray從流中檢索數據並將其放入Silverlight模型中。

注意:確保添加System.Json作爲參考。

public void CallJson() 
{ 
    var webClient = new WebClient(); 
    webClient.OpenReadCompleted += ReadCompleted; 
    webClient.OpenReadAsync(new Uri("http://thisIsWhereYour.Uru/Goes.ashx")); 
} 

void ReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{ 
    JsonArray array = (JsonArray)JsonValue.Load(e.Result); 
    foreach (var jsonPerson in array) 
    { 
     var person = new { 
      firstName = jsonPerson["FirstName"], 
      lastName = jsonPerson["LastName"] 
     }; 
    } 
} 
+0

有很多關於如何在Silverlight中手動反序列化JSON的示例。我希望免費獲得這個,這是你用XML服務的方式。我感興趣的是在Silverlight中使用REST/JSON的原意尋找現有的約定。我可以創建自己的解決方法。不過謝謝你的努力。 – 2012-07-19 15:47:25

相關問題