/ /シリアル化されていないxmlファイルによる逆シリアル化 - xml、xml-serialization、linq-to-xml

xml、シリアル化されていないxmlファイルによる直列化復元 - xml、xml-serialization、linq-to-xml

シリアル化によって生成されないxmlからオブジェクトを生成するためにdeserializeを使用できますか?

私がこのようなxmlファイルを持っていれば

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

IEnumberableを持つObject personとしてそれを逆シリアル化できますか?または、オブジェクトのPersonを直列化してIEnumerableプロパティと直列化する必要がありますか?

回答:

回答№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