使用DLR更简单的Linq到XML查询

时间:2010-06-18 02:24:18

标签: c# xml linq-to-xml dynamic-language-runtime linq-to-xsd

我有一个关于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到XSD做到这一点已经很好了,但显然这需要一个XSD架构而且我并不总是有一个。

我确信应该有一种方法可以使用.NET 4.0的新动态功能实现这一目标,但我不确定如何或者是否有人已经开始使用它。

显然,我会放弃Linq对XSD(类型成员和编译时间检查)的一些优点,但它不会比原始解决方案更糟糕,并且肯定会更具可读性。

有人有想法吗?

由于

1 个答案:

答案 0 :(得分:3)

This blog post在LINQ to XML场景中使用ExpandoObject进行了一些探讨。