2009-04-27 6 views
1

Voici ma situation:Problème d'utilisation XmlSerializer pour sérialiser/désérialiser une classe entre une bibliothèque Silverlight et une application MVC

J'ai une solution avec trois projets: 1) App Silverlight, 2) Bibliothèque Silverlight, 3) les Asp.net-MVC Web App.

Dans la bibliothèque Silverlight, j'ai une classe appelée "MyClass". Dans l'application Silverlight, je sérialise cette classe en XML en utilisant XmlSerializer et renvoie le XML à la base de données. Je récupère et désérialise ce XML périodiquement dans l'application Silverlight pour utiliser MyClass.

Mon problème vient quand j'essaye de désérialiser ce XML à partir de l'application Asp.Net-MVC. A l'intérieur de l'App Asp.Net MVC c'est le code que j'utilise pour désérialiser le 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; 
    } 
} 

Ceci est l'erreur d'exécution que je reçois:

Erreur du serveur dans l'application '/'.

Impossible de charger le fichier ou l'assemblage 'System.Xml, Version = 2.0.5.0, Culture = neutre, PublicKeyToken = 7cec85d7bea7798e' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails d'exception: System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'System.Xml, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

je remarquai que la version de la référence « System.Xml » dans le projet de bibliothèque Silverlight est 2.0.5.0, mais la référence « System.Xml » est 2.0.0.0 dans l'App Asp.Net MVC. Je suppose que c'est probablement la cause du problème, mais je n'arrive pas à trouver une solution!

Je suis en train de jouer avec ça depuis un certain temps maintenant et ça me rend fou! Comme toujours, toute aide serait grandement appréciée!

Merci

Jeff

Répondre

1

Vous avez raison - la cause du problème que vous rencontrez est les versions ne correspondent pas. Je crois que vous pouvez résoudre ce problème avec Assembly binding redirection.

Questions connexes