HttpUtility.UrlEncode в консольном приложении

Я хотел бы использовать HttpUtility.UrlEncode в консольном приложении, VB.NET, VS 2010 Beta 2.

System.Web.HttpUtility.UrlEncode(item)

Сообщение об ошибке: "HttpUtility" не является членом "Web".

В этот вопрос Анжисан предлагает добавить ссылку на System.Web следующим образом:

  • В своем проводнике решений щелкните правой кнопкой мыши по ссылкам
  • Выберите "добавить ссылку"
  • В диалоговом окне "Добавить ссылку" используйте вкладку .NET
  • Прокрутите вниз до System.Web, выберите это и нажмите ok

Однако у меня нет записи System.Web в этом месте.

Ответ 1

System.Web есть, но, похоже, Visual Studio по умолчанию не сортирует по имени. Вам нужно щелкнуть столбец Component name, чтобы отсортировать список.

Мне удалось запустить этот код:

Console.WriteLine(System.Web.HttpUtility.UrlEncode(" ")); // +

Просто добавив ссылку System.Web, без System.Web.Extensions.

Кроме того, вы должны заменить целевую инфраструктуру на .NET Framework 4 Client Profile на .NET Framework 4; перейдите в проект → Свойства... → вкладка приложения

Ответ 2

Убедитесь, что целевая инфраструктура - это ".NET Framework 4", а не "Профиль клиента .NET Framework 4".

Ответ 3

@iar, фреймворк не был настроен на "неправильный". Консоль и приложения Windows (есть больше) целевого профиля клиента .NET Framework 4 по умолчанию в Visual Studio 2010. Это по дизайну. И это происходит, когда вы нацеливаете ".NET Framework 4" в диалоговом окне "Новый проект". Почему System.Web.dll не нашел, потому что он не является частью профиля клиента .NET Framework 4, поэтому система проекта не может найти его и выдает предупреждение во время сборки (что вы, вероятно, проигнорировали, предоставив вам ссылку System.Web.dll). Вы не найдете System.Web.dll на вкладке .NET в диалоговом окне "Добавить ссылку", так как этот список фильтруется в соответствии с целевой инфраструктурой.

Ответ 4

Если вы используете .NET 4.0 или новее, вы можете использовать WebUtility.UrlEncode, который работает с профилем клиента (не требует System.Web сборка).

Ответ 5

Изменение целевой целевой структуры проекта из ".NET-клиента клиента .NET Framework 4" на ".NET Framework 4.0" помогло мне с профилем клиента .NET Framework 4 в качестве целевой среды, я смог добавить версию System.Web 2.0, просмотрев C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 из окна добавления ссылок, но делает то же самое для dll System.Web 4.0. Предупреждение.

Ответ 6

Для проектов VB в Visual Studio 2010 опция изменить целевую инфраструктуру из "профиля клиента .NET Framework 4.0" на ".NET Framework 4.0" находится в разделе "Проект" > "Свойства" > "Скомпилировать" > "Расширенные параметры компиляции..."

Ответ 7

Вам нужно добавить ссылку на System.Web и System.Web.Extensions.