0

我可以使用反序列化从不是由序列化生成的 xml 生成对象吗?

说,如果我有这样的 xml 文件

<Person>
  <Cop name ="n1" />
  <Cop name ="n2" />
</Person>

我可以将其反序列化为具有 IEnumberable 的对象人员吗?还是我需要使用 IEnumerable 属性序列化 Object Person 然后反序列化?

4

1 回答 1

0

当然你可以反序列化没有通过序列化生成的 XML,你只需要确保你生成或编写了正确的类结构,并带有合适的属性来匹配 XML 结构。而且我不确定 anIEnumerable是否可行,但可以使用List<T>or T[]。以下是带有 的示例List<T>

            string xml = @"<Person>
  <Cop name =""n1"" />
  <Cop name =""n2"" />
</Person>";


            XmlSerializer ser = new XmlSerializer(typeof(Person));

            Person p1 = (Person)ser.Deserialize(new StringReader(xml));

            foreach (Cop cop in p1.Cops)
            {
                Console.WriteLine(cop.Name);
            }
        }
    }



    public class Person
    {
        [XmlElement(ElementName="Cop")]
        public List<Cop> Cops { get; set; }
    }

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

那输出

n1
n2
于 2012-09-01T09:50:15.803 回答