C# Xml序列化失败,简单类上出现NullReferenceException

C# Xml序列化失败,简单类上出现NullReferenceException,c#,unity3d,mono,C#,Unity3d,Mono,我有一个要序列化的简单类: public class InnerCharacter : Object { public double xp; public double hp; } 我使用了不同的方法,例如: public static void TestSerialize() { InnerCharacter c = new InnerCharacter(); Serialize(c); } static public void Serialize(Inne

我有一个要序列化的简单类:

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
无法处理从继承的对象。来源:。如果可能,请尝试删除继承。

XmlSerializer
无法处理从继承的对象。来源:。如果可能的话,尝试删除继承。

在我看来,异常在代码中发生得比在这里显示的更深,但是您是否验证了“new XmlSerializer(typeof(InnerCharacter))”实际返回的是有效值?或者“new StreamWriter(@“Xml.Xml”)”正在返回有效值,或者该详细信息具有有效值?从
对象继承时出现问题@dbc能否请您创建一个答案?这helped@Dvole-我可以,但我不知道它到底失败了,或者如何解决它。@dbc我刚刚从对象中删除了继承,它就成功了。在我看来,异常在代码中发生得比您在这里显示的更深,但您是否验证了“新的XmlSerializer(typeof(InnerCharacter))”是否实际返回有效值?或者“new StreamWriter(@“Xml.Xml”)”正在返回有效值,或者该详细信息具有有效值?从
对象继承时出现问题@dbc能否请您创建一个答案?这helped@Dvole-我可以,尽管我不知道它到底失败了,或者如何解决它。@dbc我刚刚从对象中删除了继承,它成功了。