C# Xml类序列化错误

C# Xml类序列化错误,c#,xml,xml-serialization,C#,Xml,Xml Serialization,我正在尝试创建如下xml: <CreditApplication> <ApplicantData> <FirstName> John </FirstName> <LastName> Smith </LastName> </ApplicantData> <CoApplicantData> <FirstName> Mary

我正在尝试创建如下xml:

<CreditApplication>
    <ApplicantData>
        <FirstName> John </FirstName>
        <LastName> Smith </LastName>
    </ApplicantData>
    <CoApplicantData>
        <FirstName> Mary </FirstName>
        <LastName> Jane </LastName>
    </CoApplicantData>
</CreditApplication>
在CreditApplication类中,我有对枚举的引用,这些枚举在我的程序中的其他地方定义,也需要序列化

当我实际运行该程序并尝试使用以下工具对类进行序列化时:

XmlSerializer applicantXMLSerializer = new XmlSerializer(typeof(CreditApplication));
StringWriter applicantStringWriter = new StringWriter();
XmlWriter applicantXmlWriter = XmlWriter.Create(applicantStringWriter);
applicantXMLSerializer.Serialize(applicantXmlWriter, application);
var applicantXML = applicantStringWriter.ToString();
但是我得到了错误:
有一个错误,它反映了类型“Models.Credit.CreditApplication”

有人知道我做错了什么吗

编辑:

我已经更新了上面的代码以反映建议的更改。不过,还有其他一些问题也出现了

我有一个这样定义的枚举:

[DataContract]
public enum Relationship
{
    Spouse = 4,
    ResidesWith = 1,
    Parent = 2,
    Other = 3,
    PersonalGuarantor = 5,
    CoApplicant = 6
}
如上所述,零不是一个已定义的选项。因此,没有默认值。我设计这个程序的想法是,不设置的关系默认为零。这样我就可以很容易地看到是否设置了值。如果我定义了零,然后将其初始化为“无关系”或类似的内容,那么就无法判断用户是否将值设置为“无关系”,或者他们是否只是没有选择选项。

动议:

如果字段应该是XML中的独立元素,则希望使用而不是

例如:

<SimpleXML name="test">
  <child>SomeValue</child>
</SimpleXML>

一些价值

name
是一个属性,而
child
是一个元素。

对于所需的XML,您需要的是XmlElement,而不是XmlAttribute。您没有任何定义的元素这一事实可能是您的问题。您可能应该将更新后的问题作为新问题提出。不管怎样,我将在下面的答案中添加内容,尝试解决这个问题。我已经在写了。在我把它贴出来之后,我意识到了这一点。谢谢,太好了。看起来您在那里得到了答案,并适当地更新了这个问题,因此我将保留我的答案。即使有这些更改,我仍然会收到一个InvalidOperationException,其中包含“生成XML文档时出错。”异常。
<SimpleXML name="test">
  <child>SomeValue</child>
</SimpleXML>