【问题标题】:Serializable attribute in silverlight 4Silverlight 4中的可序列化属性
【发布时间】:2011-07-19 21:29:56
【问题描述】:

那么在silverlight 4 中我们是否有Seri​​alizable 属性?我在网上有一些令人困惑的回答。当我尝试在我的代码中使用它时,我得到一个命名空间错误。这些是我的包括

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

我已将程序集 System ,System.Runtime.Serialization 添加到我的项目中。

一个后续问题是,如果它在 Silverlight 中不可用,我该如何正确序列化单例?因为我打算使用这里给出的例子http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

谢谢

【问题讨论】:

    标签: silverlight attributes serializable


    【解决方案1】:

    这是您不能在 Silverlight 中使用的 .NET 属性,但您可以使用 DataContract 进行序列化。

    对于独立(非 WCF)序列化/反序列化,可以使用三个组件:

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

    使用 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);
    }
    

    来自该线程的示例:http://forums.silverlight.net/forums/p/23161/82135.aspx

    【讨论】:

    • 我确实使用了 DataContract 进行序列化,但这意味着我可以得到一个单例类的多个实例。
    • @user642770 有一个接口,顺便说一句;不确定它是否存在于 SL 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多