0

デシリアライズを使用して、シリアライゼーションによって生成されない xml からオブジェクトを生成できますか?

たとえば、このようなxmlファイルがあるとします

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

IEnumberable を使用して Object person としてデシリアライズできますか? または、Object Person を IEnumerable プロパティでシリアル化してから逆シリアル化する必要がありますか?

4

1 に答える 1

0

もちろん、シリアライゼーションによって生成されなかった XML をデシリアライズすることはできますが、XML 構造に一致する適切な属性を持つ正しいクラス構造を生成または記述する必要があります。が可能かどうかはわかりませんが、またはIEnumerableを使用することは可能です。以下は、 を含むサンプルです。List<T>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 に答える