C# XmlSerializer BindingFailure

- Je obtenir un BindingFailure sur une ligne de code en utilisant le XmlSerializer:

XmlSerializer s = new XmlSerializer(typeof(CustomXMLSerializeObject));

L'assembly avec nom d'affichage CustomXMLSerializeObject.XmlSerializers "n'a pas de charge dans le "LoadFrom' contexte de liaison de l'AppDomain avec l'ID 1. La cause de l'échec a été: du Système.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly XMLSerializeObject.XmlSerializers, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

L'erreur est assez long et explique pré-lier les informations d'état et les lieux qu'il a regardé d'essayer et de trouver le fichier.

L'objet personnalisé je suis en train de desrialize est relativement simple - juste un tas de privé des entiers et des chaînes qui ont des accesseurs. J'ai une variable privée qui est une autre coutume, serializeable classe, mais que l'on n'a rien, mais privé des chaînes publiques accesseurs en elle.

La délicate partie? Cela se produit uniquement quand je désérialiser. Cette ligne de code fonctionne très bien lorsque je sérialiser l'objet. Il fonctionne très bien et l'objet se désérialisé et rempli parfaitement. N'a pas vraiment d'avis aucune perte de performance ou de longs temps de chargement.

Quel est exactement cet avertissement (pas d'une erreur ou d'exception, le programme fonctionne très bien par la suite)? Pourquoi se produit-il? Comment puis-je l'empêcher sans la simple désactivation de l'avertissement?

  • Vous pouvez éviter d'avoir le runtime créer un assembly de sérialisation à la volée par un pré de cuisson avec le SGEN (pas le plus amusant, l'outil à utiliser cependant). Juste une pensée, même si je ne suis pas sûr pourquoi vous obtenez cette erreur.
  • Qu'est-ce que l'espace de noms racine de votre projet appelé?
  • Oui, les espaces de noms sont différents. Comme je n'ai pas envie de donner tout ce que pourrais obtenir mes fesses poursuivi, disons simplement que le nom de l'application de l'espace est "Namespace1" et les objets sérialisables sont dans "Namespace2".
  • De vérifier .La version NET de la vôtre CustomXMLSerializeObject.XmlSerializers.dll il doit être même que celui de votre projet. Vérifiez ceci: stackoverflow.com/a/52848813/5639198
InformationsquelleAutor Steve H. | 2010-02-05