0

Деревья выражения Linq можно найти в пространстве имен System.Linq.Expressions в сборке System.Core.dll.Где находится API дерева выражений DLR?

В какой сборке и в каком пространстве имен используется API дерева выражений DLR?

Является ли это тем, что 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, и в этих случаях новые и улучшенные API 'System.Linq.Expressions' будут включены в различные сборки' Microsoft.Scripting' (и, я думаю, в разных пространствах имен, чтобы избежать столкновений с .NET 3.x LINQ). –