2010-06-18 4 views
1

J'ai une question concernant les requêtes Linq to XML et comment nous pourrions éventuellement les rendre plus lisibles en utilisant le nouveau mot-clé dynamique.Simpler Linq to XML requêtes avec le DLR

En ce moment je suis en train d'écrire des choses comme:

var result = from p in xdoc.Elements("product") 
      where p.Attribute("type").Value == "Services" 
      select new { ... } 

Ce que je voudrais écrire est quelque chose comme:

var result = from p in xdoc.Products 
      where p.Type == "Services" 
      select new { ... } 

Je sais que je peux le faire avec LINQ to XSD qui est assez bon déjà, mais évidemment cela nécessite un schéma XSD et je n'en ai pas toujours un.

Je suis sûr qu'il devrait y avoir un moyen d'y parvenir en utilisant les nouvelles fonctionnalités dynamiques de .NET 4.0 mais je ne suis pas sûr de savoir si ou si quelqu'un a déjà essayé. De toute évidence, je perdrais certains des avantages de Linq pour XSD (membres dactylographiés et compilations de temps de compilation) mais ce ne serait pas pire que la solution originale et serait certainement plus lisible.

Quelqu'un a une idée?

Merci

Répondre

3

This blog post explore un peu en utilisant ExpandoObject dans LINQ à des scénarios XML.