Silverlight Toolkit  - 12 новых контролов, исходники, юнит-тесты, темы, примеры, документация.
10/29/2008
На PDC08 представлен новый набор контролов для Silverlight 2.0
Автор: Mindberg на 10/29/2008 03:16:00 PM 0 коммент.
Использование JSON в Silverlight 2.0
Äëÿ ñåðèàëèçàöèè îáúåêòîâ â JSON ïðåäíàçíà÷åí DataContractJsonSerializer.         
Íàïðèìåð, åñòü ñëåäóþùèé êëàññ:
public class DTO       
{       
    public Guid Id { get; set; }       
    public string Value { get; set; } 
    public override string ToString()        
    {       
        return string.Concat("{Id='", this.Id, "', Value='", this.Value, "'}");        
    }       
}
ñîçäàåì ýêçåìïëÿð êëàññà:        
var ct = new DTO() { Id = Guid.NewGuid(), Value = "hello" };         
        
ñåðèàëèçîâàòü:          
string json = JSON.Serialize(ct);  
ïîëó÷èì:        
{"Id":"a90417e2-9689-4d80-8c34-b1faeb14823b","Value":"hello"}
äåñåðèàëèçîâàòü:        
DTO dto = JSON.Deserialize<DTO>(json);
--
public static class JSON         
{       
    public static string Serialize(object value)        
    {       
        // ñîçäàòü ñåðèàëèçàòîð       
        DataContractJsonSerializer js = new DataContractJsonSerializer(value.GetType());
        // ñîçäàòü ñòðèì; è çàïèñàòü â íåãî ðåçóëüòàò ñåðèàëèçàöèè       
        MemoryStream ms = new MemoryStream();        
        js.WriteObject(ms, value);
        // ïîëó÷èòü ñòðîêó èç ñòðèìà         
        // v1:       
        ms.Position = 0;       
        using (StreamReader reader = new StreamReader(ms))        
            return reader.ReadToEnd();         
        
        // v2:         
        // byte[] bytes = ms.ToArray();         
        // return System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length);         
    }
    public static T Deserialize<T>(string json)        
    {       
        // ñîçäàòü ñåðèàëèçàòîð       
        DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));        
        // ñîçäàòü ñòðèì; è çàïèñàòü â íåãî ñòðîêó       
        MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json));        
        // äåñåðèàëèçîâàòü ...       
        return (T)js.ReadObject(ms);        
    }       
}
Автор: Mindberg на 10/29/2008 05:47:00 AM 0 коммент.