【问题标题】:.NET XML Serialization with a static class in Unity: InvalidOperationException.NET XML 序列化与 Unity 中的静态类:InvalidOperationException
【发布时间】:2013-04-04 05:57:48
【问题描述】:

我正在使用带有 Unity 的 Javascript 将数据保存为 XML。 我正在导入部分 .NET 库以提供 XML 序列化功能

我正在尝试将我的静态 Global 类转换为 XML。

我明白了

 InvalidOperationException: The type of the argument object 'System.MonoType' is not primitive.

尝试序列化时

static class Global extends System.Object{ 
class buildingData{
    static var posX:int[]=new int[100];
    static var posY:int[]=new int[100];
    static var posZ:int[]=new int[100];
    static var name:String[]=new String[100];
    static var type:int[]=new int[100];
    static var id:int[]=new int[100];
}

class peopleData{
    ///etc.

通过这种方式:

var xs : XmlSerializer = new XmlSerializer(typeof(Global));
xs.Serialize(xmlTextWriter, Global);

问题是我的 Global 类是静态的吗?

【问题讨论】:

    标签: .net unity3d xml-serialization unityscript


    【解决方案1】:

    MonoTypeType 的子类,代表类型系统。如果Global 是一种类型,我很惊讶xs.Serialize(xmlTextWriter, Global) 甚至可以编译,因为XmlSerializer 需要一个对象,而那里的Global(而不是typeof(Global))甚至不应该解决 AFAIK。

    但是:确实,您不能使用对象序列化器来序列化静态状态。但是当我读到它时,Global 甚至没有任何状态。基本上 - 给它一个实际的对象实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      相关资源
      最近更新 更多