<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://davesbox.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dave's Box : .NET 4.0, Linq</title><link>http://davesbox.com/archive/tags/.NET+4.0/Linq/default.aspx</link><description>Tags: .NET 4.0, Linq</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>ExpressionVisitor shipping in .NET 4.0</title><link>http://davesbox.com/archive/2009/08/14/expressionvisitor-shipping-in-net-4-0.aspx</link><pubDate>Fri, 14 Aug 2009 16:00:00 GMT</pubDate><guid isPermaLink="false">2122c344-89bc-4cd7-b145-b0515ba3439f:4019</guid><dc:creator>David Kean</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://davesbox.com/rsscomments.aspx?PostID=4019</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://davesbox.com/commentapi.aspx?PostID=4019</wfw:comment><comments>http://davesbox.com/archive/2009/08/14/expressionvisitor-shipping-in-net-4-0.aspx#comments</comments><description>&lt;p&gt;As an update to &lt;a href="http://davesbox.com/archive/2008/12/09/quot-i-can-t-believe-microsoft-didn-t-make-enter-api-name-here-public-quot.aspx"&gt;“I can’t believe Microsoft didn’t make [Enter API Name Here] public”&lt;/a&gt;, the Visual Studio Languages team (which own the System.Linq namespace as well as the C#, VB and F# compilers) have added a new public version of &lt;a href="http://davesbox.com/archive/2008/12/09/quot-i-can-t-believe-microsoft-didn-t-make-enter-api-name-here-public-quot.aspx"&gt;ExpressionVisitor&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;This type allows you to traverse an entire expression graph by simply passing the expression to &lt;strong&gt;ExpressionVisitor.Visit(Expression)&lt;/strong&gt;. Each expression type has an associated &lt;strong&gt;VisitXXX&lt;/strong&gt; method (such as &lt;strong&gt;VisitMember(MemberExpression),&lt;/strong&gt; &lt;strong&gt;VisitCatchBlock(CatchBlock)&lt;/strong&gt;, etc) that you can override to get called back every time one of these expressions is encountered.&lt;/p&gt;  &lt;p&gt;This should make &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/12/04/i-love-ayende-and-oss.aspx"&gt;Jeremy&lt;/a&gt; and &lt;a href="http://ayende.com/"&gt;Oren&lt;/a&gt; very happy. ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://davesbox.com/aggbug.aspx?PostID=4019" width="1" height="1"&gt;</description><category domain="http://davesbox.com/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://davesbox.com/archive/tags/Linq/default.aspx">Linq</category></item></channel></rss>