Исключение при попытке обратиться к пространству имен LINQ - PullRequest
3 голосов
/ 29 марта 2010

При попытке использовать LINQ в проекте Windows Forms .NET 2.0 я получил:

Пространство имен или тип, указанный в Imports 'System.Linq', не содержит открытых элементов или не может бытьнайденный.Убедитесь, что пространство имен или тип определены и содержат хотя бы один открытый член.Убедитесь, что имя импортированного элемента не использует псевдонимы

В обеих строках, которые ссылаются на следующие пространства имен:

System.Linq;
System.Xml.Linq;

Как я могу заставить работать эти пространства имен.NET 2.0 без ссылки на внешнюю DLL или что-нибудь?

Ответы [ 4 ]

8 голосов
/ 29 марта 2010

Вы не можете. Они были введены в .NET 3.5.

Я не знаю ни одной реализации LINQ to XML для .NET 2.0 (если только вы не используете сборку Mono - я предполагаю, что Mono поддерживает ее). Существует LINQBridge , если вы хотите LINQ to Objects в .NET 2.0, хотя, конечно, это идет вразрез с вашим требованием «никаких внешних библиотек».

1 голос
/ 29 марта 2010

Возможно, вы можете использовать LINQ в приложении .NET 2.0, если вы используете компилятор 3.0 и включаете реализацию Mono LINQ. Я сам не знаю, как это сделать, и уверен, что это означает обращение к внешней DLL. Тем не менее, приложения .NET постоянно ссылаются на внешние библиотеки DLL, поэтому я не стал бы беспокоиться об этом.

Обновление: Есть нечто, называемое LINQBridge , которое может предоставить то, что вам нужно.

1 голос
/ 29 марта 2010

LINQ недоступен в .NET Framework 2.0. Это было введено в 3.5.

0 голосов
/ 11 сентября 2010

Ссылка System.Core (я предлагаю вам найти его в установке .NET 3.5).

...