0

Linq表達式樹可以在System.Core.dll程序集的System.Linq.Expressions命名空間中找到。DLR表達式樹API在哪裏?

DLR Expression Tree API在哪個程序集和哪個名稱空間中?

DLR是否將更多語言元素作爲更多表達式類添加到相同程序集和相同名稱空間中?

回答

2

在.NET 4.0和更高版本中,它們是同一個(DLR使用System.Linq.Expressions)。只有更多的表達式類型比以前的版本(異常處理,控制流,動態綁定等)。

+0

謝謝。我被這篇文章誤導了(http://www.codeproject.com/Articles/28299/Generate-AST-for-the-DLR),但我後來看它是在2008年編寫的。即使是與表達式樹有關的DLR文檔在codeplex網站(http://www.codeplex.com/Download?ProjectName=dlr&DownloadId=246540)上沒有明確指出它們使用相同的命名空間和程序集。然而,有一點與Reflector勾搭,證實了你在說什麼。謝謝。 –

+0

只是爲你添加更多的細節回答,這裏有一個有用的鏈接,我發現任何其他人可能需要回答這個問題:http://dlr.codeplex.com/discussions/282550 –

+1

DLR實際上可以部署在較早.NET版本,在這些情況下,新的和改進的'System.Linq.Expressions' API將被包含在各種'Microsoft.Scripting'程序集中(並且,我認爲,在不同的命名空間中以避免與.NET 3.x發生衝突LINQ)。 –