Проблема с использованием XmlSerializer для сериализации / десериализации класса между библиотекой Silverlight и приложением MVC - PullRequest
1 голос
/ 28 апреля 2009

Вот моя ситуация:

У меня есть решение с тремя проектами: 1) Приложение Silverlight, 2) Библиотека Silverlight, 3) Веб-приложение Asp.net-MVC.

В библиотеке Silverlight у меня есть класс под названием «MyClass». В приложении Silverlight я сериализую этот класс в XML с помощью XmlSerializer и отправляю XML обратно в базу данных. Я периодически извлекаю и десериализую этот XML-файл в приложении Silverlight для использования MyClass.

Моя проблема возникает, когда я пытаюсь десериализовать этот XML из приложения Asp.Net-MVC. Внутри приложения Asp.Net-MVC это код, который я использую для десериализации XML в MyClass:

 MySilverlightLibrary.MyClassObjects.MyClass newMyClass = null;

 Assembly ass = Assembly.Load("MySilverlightLibrary.MyClassObjects");
 Type ty = ass.GetType("MySilverlightLibrary.MyClassObjects.MyClass", true);

 XmlSerializer theSerializer = new XmlSerializer(ty);

 if( !String.IsNullOrEmpty(xmlText) )
 {
    using( XmlReader sr = XmlReader.Create(new StringReader(xmlText)) )
    {                 
       newMyClass = theSerializer.Deserialize(sr) as MySilverlightLibrary.MyClassObjects.MyClass;
    }
 }  

Это ошибка времени выполнения, которую я получаю:

Ошибка сервера в «/» приложении.

Не удалось загрузить файл или сборку ' System.Xml , Версия = 2.0.5.0, Культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e' или одна из ее зависимостей. Система не может найти указанный файл.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'System.Xml, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e' или одна из ее зависимостей. Система не может найти указанный файл.

Я заметил, что версия ссылки «System.Xml» в проекте библиотеки Silverlight - 2.0.5.0, но ссылка «System.Xml» - 2.0.0.0 в приложении Asp.Net-MVC. Я предполагаю, что это, вероятно, причина проблемы, но я не могу понять, как это исправить!

Я уже довольно давно этим занимаюсь, и это сводит меня с ума! Как всегда, любая помощь будет принята с благодарностью!

Спасибо

Jeff

1 Ответ

1 голос
/ 13 мая 2009

Вы правы - причина возникшей проблемы - несовпадение версий. Я считаю, что вы можете решить эту проблему с помощью перенаправления привязки сборки .

...