J'ai un fichier XML que je veux convertir en une liste d'objets POCO.Objet LINQ to XML to POCO
J'ai le code de travail suivant pour lire le XML et créer des objets à partir de celui-ci. Je veux juste vérifier que c'est un bon moyen de le faire et que je ne manque aucun truc. En particulier en ce qui concerne la requête Linq imbriquée.
XDocument xmlDoc = XDocument.Load(path);
var q = from file in xmlDoc.Descendants("File")
select new ImportDefinition()
{
Name = file.Attribute("Name").Value,
TypeName = file.Attribute("TypeName").Value,
ColumnMappings =
(
from map in file.Descendants("ColumnMap")
select new ColumnMap()
{
DatabaseColumn = new Column()
{
Name = map.Element("DatabaseColumn").Attribute("Name").Value
}
}
).ToList<ColumnMap>()
};
List<ImportDefinition> def = q.ToList<ImportDefinition>();
Merci
AFAIK .Cast <> ne pas invoquer les opérateurs de conversion personnalisés - ou le fait-il? – dtb
@dtb: Si ce n'est pas le cas, cela ne fonctionnera pas. N'a pas testé, mais aurait pensé que c'est juste une extension qui fait quelque chose comme IEnumerable Cast (cibles IEnumerable ) {foreach (cible T dans les cibles) rendement return (U) target; } –
Je crois que c'est exactement ce que fait Enumerable.Cast et ne fonctionnera probablement pas aussi bien à cause de la conversion au paramètre générique 'U' qui ne recherche pas d'opérateurs de conversion personnalisés. Mais je n'ai pas testé aussi bien. – dtb