Я пытаюсь десериализовать строку JSON, которая была сериализована самой JSON.Net 4.0 r3. Настройки одинаковы для сериализации и десериализации. Возникает следующее исключение:
Не удалось найти тип
«System.Collections.Generic.List`1 [[System.Drawing.PointF,
System.Drawing]] 'в сборке' "mscorlib, версия = 4.0.0.0,
Культура = нейтральная, PublicKeyToken = b77a5c561934e089 "'
После включения «остановить, когда выбрасывается BindingFailure», я вижу, что проблема в следующей части (исходный код JSON.Net, DefaultSerializationBinder.cs):
if (assemblyName != null)
{
Assembly assembly;
#if !SILVERLIGHT && !PocketPC
// look, I don't like using obsolete methods as much as you do but this is the only way
// Assembly.Load won't check the GAC for a partial name
#pragma warning disable 618,612
assembly = Assembly.LoadWithPartialName(assemblyName);
#pragma warning restore 618,612
#else
assembly = Assembly.Load(assemblyName);
#endif
if (assembly == null)
throw new JsonSerializationException("Could not load assembly '{0}'.".FormatWith(CultureInfo.InvariantCulture, assemblyName));
Type type = assembly.GetType(typeName); // BindingFailure here
if (type == null)
throw new JsonSerializationException("Could not find type '{0}' in assembly '{1}'.".FormatWith(CultureInfo.InvariantCulture, typeName, assembly.FullName));
}
Ошибка, отображаемая в точке BindingFailure, равна
Не удалось загрузить сборку с отображаемым именем System.Drawing в
Контекст привязки «LoadFrom» для AppDomain с идентификатором 1. Причина
ошибка: System.IO.FileNotFoundException: не удалось загрузить файл
или сборка 'System.Drawing' или одна из ее зависимостей. Система
не могу найти указанный файл.
Операционная система - Windows 7, 64-разрядная. Я использую Visual Studio 2010 и ориентируюсь на это приложение для Framework v4. Цель не Silverlight или PocketPC.
Почему в этом случае не удается загрузить "System.Drawing"? С чего мне начать расследование, является ли это проблемой JSON.Net или проблемой с моей установкой Framework 4.0?
Заранее спасибо.