我有我想要序列化的简单类:
public class InnerCharacter : Object {
public double xp;
public double hp;
}
我厌倦了不同的方法,例如:
public static void TestSerialize()
{
InnerCharacter c = new InnerCharacter();
Serialize(c);
}
static public void Serialize(InnerCharacter details)
{
XmlSerializer serializer = new XmlSerializer(typeof(InnerCharacter));
using (TextWriter writer = new StreamWriter(@"Xml.xml")) {
serializer.Serialize(writer, details);
}
}
我也试过文件流和其他方法,但它们都导致相同的异常。以下是我如何尝试在我的一个游戏对象上加载 Unity 中的代码:
public void Start()
{
TestSerialize();
}
它们都因相同的 NullReferenceException 而失败:
NullReferenceException
System.Reflection.MonoProperty.GetterAdapterFrame[Object,String] (System.Reflection.Getter`2 getter, System.Object obj) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoProperty.cs:234)
System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoProperty.cs:292)
System.Xml.Serialization.XmlTypeMapMember.GetValue (System.Object ob)
System.Xml.Serialization.XmlSerializationWriterInterpreter.GetMemberValue (System.Xml.Serialization.XmlTypeMapMember member, System.Object ob, Boolean isValueList)
System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteElementMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList)
System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObjectElementElements (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob)
System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObjectElement (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob, System.String element, System.String namesp)
System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObject (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob, System.String element, System.String namesp, Boolean isNullable, Boolean needType, Boolean writeWrappingElem)
System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteRoot (System.Object ob)
System.Xml.Serialization.XmlSerializer.Serialize (System.Object o, System.Xml.Serialization.XmlSerializationWriter writer)
System.Xml.Serialization.XmlSerializer.Serialize (System.Xml.XmlWriter writer, System.Object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces)
最佳答案
XmlSerializer
不适用于从 UnityEngine.Object
继承的对象.来源:XML Serialization error .如果可能,请尝试删除继承。
关于c# - Xml 序列化在简单类上因 NullReferenceException 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30312538/