Упрощенные запросы Linq к XML с помощью DLR - PullRequest
1 голос
/ 18 июня 2010

У меня есть вопрос, касающийся запросов Linq to XML и как мы могли бы сделать их более читабельными, используя новое динамическое ключевое слово.

В данный момент я пишу такие вещи, как:

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

Я хотел бы написать что-то вроде:

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

Я знаю, что могу сделать это с помощью Linq to XSD, что уже довольно хорошо, но, очевидно, для этого требуется схема XSD, а у меня не всегдаодин.

Я уверен, что должен быть способ достичь этого, используя новые динамические функции .NET 4.0, но я не уверен, как или если кто-то уже попробовал это.

Очевидно, что я потеряю некоторые из преимуществ Linq для XSD (типизированные элементы и проверки времени компиляции), но это не будет хуже, чем оригинальное решение, и, безусловно, будет более читабельным.

У кого-нибудь есть идея?

Спасибо

1 Ответ

3 голосов
/ 18 июня 2010

Этот пост в блоге немного исследует использование ExpandoObject в сценариях LINQ to XML.

...