2016-03-03 4 views
12

При попытке десериализации с помощью ComponentSerializationService, ошибки населены, что ссылки не были найдены:SerializationStore не находя ссылки

public ICollection Deserialize(object serializationData) 
{ 
    var serializationStore = serializationData as SerializationStore; 
    var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService; 
    var collection = componentSerializationService.Deserialize(serializationStore); 
} 

ошибки, такие как:

Не удалось найти тип «System.Drawing. Размер'. Убедитесь, что в сборке , содержащей этот тип, указывается ссылка. Если этот тип представляет собой часть вашего проекта разработки, убедитесь, что проект был успешно создан с использованием настроек для вашей текущей платформы или любого CPU.

Здесь я прошел через элемент управления Button и задал свойство size.

+0

Было бы хорошо, если бы вы хотя бы представили полный пример того, что вы делаете. – Evk

+0

Сериализация/десериализация происходит в отдельных проектах? – Damirchi

+0

Является ли ваше приложение WPF или WinForm? –

ответ

1

Я помню, что у меня было это «не удалось найти тип System.Drawing.Size» некоторое время назад, и я потратил слишком много часов на его исправление. Я действительно не помню, что это было, наконец, исправил его, и я не думаю, что выбор Any CPU является проблемой вообще. Хотя это был не тот же контекст, что и ваш, я все еще думаю, что стоит попробовать следующее, поскольку это может быть проблема, связанная с ссылкой на разные версии System.Drawing.dll из нескольких проектов внутри вашего решения.

Таким образом, попробуйте дважды проверить решение на наличие несоответствий в используемых версиях (даже если записи пакетов.config выглядят нормально) и убедитесь, что все они ссылаются на одну и ту же версию (например, .net461).

В моем случае некоторые из 30 + библиотек в решении, как оказалось, использовали .net45; Я использовал инструмент под названием Target Framework Migrator, чтобы исправить это. Вы можете получить его через Tools => расширения и обновления => Online => Visual Studio Gallery

, а затем введите Target Migrator в поле поиска.

Я помню, что я также обновил .Net до 4.6.1 во время моих попыток исправить проблему ... возможно, вы тоже могли бы попробовать это ... но в любом случае запустить Target Migrator для собственных библиотек (и перезапуск VS 2015 по пути), безусловно, стоит попробовать.

Удачи вам!

Смежные вопросы