Je n'ai aucune idée précise de la façon de formuler cette question, alors pardonnez-moi si je n'utilise pas la bonne terminologie.Linq XML - créer des types complexes
J'ai un System.Xml.Linq.XElement el
qui contient un document XML. Je veux interroger une partie du XElement et ajouter des objets utilisateur (Upload
) à une liste générique (UploadList
tenue dans une propriété de page) comme ceci:
this.UploadsList.Add((from el1 in el.Descendants("Uploads")
select new Upload
{
Comments = el1.Element("Comments") != null ? el1.Element("Comments").Value : ""
,
***ConsentForImageUse.Text=el1.Element("SomeNode") != null ? el1.Element("SomeNode").Value : ""***
,
DateImageProduced = el1.Element("DateImageProduced").Value != "" ? DateTime.Parse(el1.Element("DateImageProduced").Value) : DateTime.MinValue
,
ImageTakenBy = el1.Element("ImageTakenBy") != null ? el1.Element("ImageTakenBy").Value : ""
}).First<Upload>());
Le compilateur se plaint du peu avec les astérisques.
Mon objet de téléchargement a une propriété ConsentForImageUse
qui est elle-même une classe avec quelques propriétés.
L'erreur est Invalid initialiser le membre déclarant. Est-ce que quelqu'un sait si je peux créer des objets 'complexes' en utilisant Linq comme ça?
Pas besoin d'utiliser 'let' vraiment. Vous pouvez déplacer tout ce code où 'consent' est. De toute façon fonctionne. –
Pour moi, le 'let' est un choix esthétique. J'ai tendance à considérer les initialiseurs d'objet excessivement longs comme disgracieux. Vous avez raison, cependant - cela fonctionnera dans les deux cas. – Ben
Cela semble prometteur - je vais essayer le matin - merci! – adrianos