Не удается найти JavaScriptSerializer в.Net 4.0
Я не могу найти JavaScriptSerializer
объект, ни System.Web.Script.Serialization
пространство имен в Visual Studio 2010. Мне нужно что-то сериализовать в JSON, что я должен использовать?
И да, я уже включил System.Web.Extensions
(в System.Web.Extensions.dll) в рамках проекта. Вот почему я в шоке?
- я знаю
System.Web.Extensions
был отмечен как устаревший в 3.5
12 ответов
Проверьте, включена ли версия.net 4 System.Web.Extensions
- есть версия 3.5, но я не думаю, что она работает.
Эти шаги работают для меня:
- Создать новое консольное приложение
- Измените цель на.net 4 вместо профиля клиента
- Добавить ссылку на
System.Web.Extensions
(4.0) - Иметь доступ к
JavaScriptSerializer
в Program.cs сейчас:-)
- Щелкните правой кнопкой мыши
References
и делатьAdd Reference
затем изAssemblies->Framework
ВыбратьSystem.Web.Extensions
, - Теперь вы сможете добавить следующее в ваш файл класса:
using System.Web.Script.Serialization;
С первого результата поиска в Google:
http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx
Класс JavaScriptSerializer
Предоставляет функции сериализации и десериализации для приложений с поддержкой AJAX.
Иерархия Наследования
System.Object
System.Web.Script.Serialization.JavaScriptSerializer
Пространство имен: System.Web.Script.Serialization
Сборка: System.Web.Extensions (в System.Web.Extensions.dll)
Итак, включите System.Web.Extensions.dll
в качестве ссылки.
Я использую Visual Studio 2015 и, наконец, наткнулся на этот пост.
Да, чтобы использовать
JavaScriptSerializer json = new JavaScriptSerializer();
Вы должны щелкнуть правой кнопкой мыши по ссылкам и в разделе Сборки -> Выбор платформы
System.Web.Extensions
Затем добавьте в вашу ссылку
using System.Web.Script.Serialization;
Это как сделать JavaScriptSerializer доступным в вашем приложении, нацеливая .NET 4.0
(полный)
using System.Web.Script.Serialization;
Это должно позволить вам создать новый JavaScriptSerializer
объект!
using System.Web.Script.Serialization;
находится в сборке: System.Web.Extensions (System.Web.Extensions.dll)
Вы ориентируетесь на.NET 4 framework или.NET 4 Client Profile?
Если вы нацеливаетесь на последнее, вы не найдете этот класс. Вы также можете пропустить ссылку, вероятно, на расширение DLL.
Для тех, кто, кажется, следит за ответами выше, но все еще имеет проблему (например, см. Первый комментарий на вопрос автора):
Вы, вероятно, работаете над решением многих проектов. Проект, над которым вы работаете, ссылается на другие проекты, но вы фактически изменяете файл из одного из других проектов. Например:
- Проект A ссылки
System.Web.Extensions
- проект A ссылки проект B
Но если файл, который вы изменяете для использования System.Web.Script.Serialization
находится в проекте B, то вам нужно будет добавить ссылку на System.Web.Extension
и в проекте Б
Вы включили ссылку на System.Web.Extensions
? Если вы нажмете на свою первую ссылку, там написано, в какой сборке он находится
Вы должны добавить ссылку на проект.
В Сборках есть System.Web.Extensions Добавьте это.
Как только это будет сделано, введите:
using System.Web;
using System.Web.Script;
using System.Web.Script.Serialization;
Это сработало для меня.
Вы можете использовать другую опцию, которая является NewtonsoftJASON, вы можете установить ее из диспетчера пакетов NuGet. Инструменты >> Nuget PacakgeManager
Просто чтобы вы знали, я использую Visual Studio 2013 и у меня была та же проблема, пока я не использовал Свойства проекта, чтобы перейти на 3.5 Framework и обратно на 4.5. Это по какой-то причине правильно зарегистрировало.dll, и я мог использовать System.Web.Extensions.