Импортировать пространство имен System.Query

Я пытаюсь загрузить Linq на моем веб-сервере с поддержкой .Net 3.5, добавив следующее на мою страницу .aspx:

<%@ Import Namespace="System.Query" %>

Однако, это терпит неудачу и говорит мне, что не может найти пространство имен.

Тип или имя пространства имен «Запрос» не существует в пространстве имен «Система»

Я тоже безуспешно пытался

  • System.Data.Linq
  • System.Linq
  • System.Xml.Linq

Я считаю, что .Net 3.5 работает, потому что, var hello = "Hello World"кажется, работает.

Может кто-нибудь помочь, пожалуйста?

PS: я просто хочу уточнить, что я не использую Visual Studio, у меня просто есть текстовый редактор и я пишу свой код прямо в файлы .aspx.

12.08.2008 10:37:50
6 ОТВЕТОВ
РЕШЕНИЕ

У меня выбрана версия 2 в IIS, и я

Ну, конечно, это твоя проблема? Выберите 3.5.

На самом деле, вот реальная информация:

http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx

5
12.08.2008 11:19:22

Материал var helloволшебства компилятора и будет работать без Linq.

Попробуйте добавить ссылку на System.Core


Извините, мне было непонятно. Я имел в виду добавить System.Coreссылки на веб-проект, а не на страницу.

На Importэтой странице в основном используются операторы, позволяющие пропустить пространство имен на странице.

0
12.08.2008 10:53:37
Привет, Кит, добавление: <% @ Import Namespace = "System.Core"%> не работает и
GateKiller 12.08.2008 10:46:20
Кит говорил о добавлении ссылки на DLL, а не о другом импорте. Честно говоря, я бы посоветовал вам начать с Visual Studio (одной из бесплатных версий), поскольку он будет оттачивать такие вещи для вас, пока вы не станете немного более осведомленными в разработке .NET.
Will Dean 12.08.2008 11:02:24
Да, я прошел через этот шаг. Как я уже сказал, я считаю, что 3.5 работает, потому что синтаксис var string = "hello"; работает, потому что это новая функция .Net 3.5. Я сейчас в полном недоумении. PS: Спасибо за вашу помощь, хотя :)
GateKiller 12.08.2008 13:06:46
var string = "hello";работает, потому что это новая функция .Net 3.5. Как минимум два человека уже пытались рассказать вам здесь, это НЕ ОСОБЕННОСТЬ .NET 3.5 Это особенность C # 3, которая является версией языка, поддерживаемого компилятором, который поставляется с VS2008. Мне трудно поверить, что вы прочитали и поняли эту статью Хансельмана, которая, кажется, охватывает именно то, что вы пытаетесь сделать.
Will Dean 12.08.2008 13:10:52

Убедитесь, что ваш проект настроен на цель 3.5, а не 2.0.

Как уже говорили другие, ваш тест 'var' - это тест C # 3 (то есть VS2008), а не 3.5-фреймворк.

Если вы правильно установили целевые параметры фреймворка проекта, не стоит ожидать, что на этом этапе вам нужно будет вручную добавлять ссылки на dll.

1
12.08.2008 10:49:50
Привет Уилл, я не использую VS. Есть ли другой способ подтвердить правильность установки 3.5?
GateKiller 12.08.2008 10:51:32
Какую версию фреймворка вы выбрали на вкладке ASP.NET в IIS?
Will Dean 12.08.2008 11:00:22
У меня выбрана версия 2 в IIS, и мой web.config показывает Version=2.0.0.0. Помогите :(
GateKiller 12.08.2008 11:11:41

Как выглядит часть вашего файла web.config?

Вот как выглядит новый проект ASP.NET 3.5, созданный в Visual Studio 2008:

<assemblies>
  <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
2
12.08.2008 13:13:54

Я нашел ответ :) Мне нужно было добавить следующее в мой web.config:

<assemblies>  
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>  
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>  
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>  
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>

Тогда я мог бы добавить следующее в мой код:

<%@ Import Namespace="System.Linq" %>

@Будет,

Спасибо за вашу помощь. Я принял один из ваших ответов :)

2
12.08.2008 13:15:14

В файле csproj может отсутствовать ссылка System.Core. Найдите строку в файле csproj, например:

<Reference Include="System" />

И добавьте строку под ним так:

<Reference Include="System.Core" />
0
11.05.2010 03:05:40