xmlserialized类的c#集值

xmlserialized类的c#集值,c#,xmlserializer,complextype,C#,Xmlserializer,Complextype,我想编写以下XML: <Fields> <Field name="john">lorem</Field> <Field name="john">lorem</Field> <Field name="john">lorem</Field> </Fields> 废弃xsd.exe并生成您的模型: [XmlRoot("Fields")] public class MyViewMod

我想编写以下XML:

<Fields>
    <Field name="john">lorem</Field>
    <Field name="john">lorem</Field>
    <Field name="john">lorem</Field>
</Fields>

废弃
xsd.exe
并生成您的模型:

[XmlRoot("Fields")]
public class MyViewModel
{
    [XmlElement("Field")]
    public Field[] Fields { get; set; }
}

public class Field
{
    [XmlAttribute("name")]
    public string Name { get; set; }

    [XmlText]
    public string Value { get; set; }
}
然后将其序列化:

var model = new MyViewModel
{
    Fields = new[]
    {
        new Field { Name = "john", Value = "lorem" },
        new Field { Name = "smith", Value = "ipsum" },
    }
};
var serializer = new XmlSerializer(typeof(MyViewModel));
serializer.Serialize(Console.Out, model);

我想避免自己写模型。为什么xsd.exe没有生成XmlText属性?@Marius,我完全不知道
xsd.exe
为什么没有生成正确的类。我从来没用过。我总是喜欢设计我正在使用的类,从不依赖某些工具来完成我的工作。
var example = new FieldType();
example.name = "attribute value";
//how to set the element value?
[XmlRoot("Fields")]
public class MyViewModel
{
    [XmlElement("Field")]
    public Field[] Fields { get; set; }
}

public class Field
{
    [XmlAttribute("name")]
    public string Name { get; set; }

    [XmlText]
    public string Value { get; set; }
}
var model = new MyViewModel
{
    Fields = new[]
    {
        new Field { Name = "john", Value = "lorem" },
        new Field { Name = "smith", Value = "ipsum" },
    }
};
var serializer = new XmlSerializer(typeof(MyViewModel));
serializer.Serialize(Console.Out, model);