序列化对象,以便State <string,object>不会启动异常</string,object>

时间:2012-01-25 15:07:06

标签: .net silverlight windows-phone-7 serialization

我有一个对象,我正在尝试将其保存到状态字典中,但是当我使用以下对象传递对象时:

State["name"] = object;

我发现有一些例外:

  

类型的第一次机会异常   发生'System.Runtime.Serialization.InvalidDataContractException'   在System.Runtime.Serialization.dll类型的第一次机会异常   mscorlib.dll中发生'System.Reflection.TargetInvocationException'   类型的第一次机会异常   发生'System.Runtime.Serialization.InvalidDataContractException'   在System.Runtime.Serialization.dll

State会自动对传递的对象进行序列化和反序列化。可能是什么问题?

我怀疑在声明类时对象必须使用[Serialize]。我尝试在我的班级上使用[序列化],但是虽然我已声明using System.Runtime.Serialization;并且引用存在但却无法识别

更新

这是我正在尝试序列化的类:

public class MeshObject
    {
        public ModelMesh mesh; // xna specific class
        public Matrix startOrientation; // xna specific class
        public Matrix Orientation; // xna specific class
        public bool isSetInPlace = false;
        public bool isSelected = false;
        public bool inPlay = false;
    }

更新2

根据我对此post的理解,Silverlight中没有[Serializable]。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尽可能read here

  • WP7中没有Seri​​alizable属性(无论如何只需要二进制序列化)
  • 您可以使用XmlSerializer进行序列化和反序列化
  • 您还需要引用“System.Xml.Serialization.dll”。

如果要序列化不可序列化的类型,则需要自己实现序列化:http://mobile.dzone.com/articles/windows-phone-7-serialization