开发者

Serializable attribute in silverlight 4

So do we or do we not have a Serializable attribute in silverlight 4? I have some confusing responses on the internet开发者_JS百科. When I try to use it in my code, i get a namespace error. These are my includes

using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Runtime.Serialization;

I have the assemblies System ,System.Runtime.Serialization added to my project.

A follow up question is, if it is not available in Silverlight how do I correctly serialize a singleton? Since I was planning to use the example given here http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

Thanks


That's a .NET attribute which you can't use in Silverlight, but you can use DataContract to serialize.

For stand-alone (non-WCF) serialization/deserialization, there are three components which can be used:

System.Runtime.Serialization.DataContractSerializer (from System.Runtime.Serialization.dll) System.Runtime.Serialization.Json.DataContractJsonSerializer (from System.ServiceModel.Web.dll) System.Xml.Serialization.XmlSerializer (from System.Xml.Serialization.dll)

A simple example using the DataContractSerializer:

string SerializeWithDCS(object obj)
{
    if (obj == null) throw new ArgumentNullException("obj");
    DataContractSerializer dcs = new DataContractSerializer(obj.GetType());
    MemoryStream ms = new MemoryStream();
    dcs.WriteObject(ms, obj);
    return Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Position);
}

Example from this thread: http://forums.silverlight.net/forums/p/23161/82135.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜