J'ai une application qui charge un ensemble dynamique:nouveau XmlSerializer (typeof (MyClass)) Causer la corruption de la mémoire?
Assembly asm = Assembly.Load("MyClass.DLL");
Type type = asm.GetType("MyClass");
MyClass runningAssembly = (MyClass)Activator.CreateInstance(type);
runningAssembly.start();
Une fois chargée et la méthode start() est appelée, cette ligne de code est exécuté:
XmlSerializer deserializer = new XmlSerializer(typeof(MyClass));
Et l'exception suivante est lancé:
"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
J'ai la cause incertaine sur cela et ne l'ai pas été en mesure d'obtenir une emprise sur elle. Est-ce que quelqu'un a des conseils? Je n'arrive pas non plus à piéger cette erreur ... ça souffle tout au long de l'essai/catch. Par ailleurs, l'erreur se produit toujours. Parfois, en mode de débogage, cela fonctionne bien, mais il semble qu'une fois qu'il a démarré, il arrivera toujours même après le redémarrage de Visual Studio. Un redémarrage l'efface et lui permet de fonctionner au moins une fois. Cela se produit également lors de l'exécution à partir du fichier EXE compilé.
EDIT
J'ai essayé la même chose, mais sans charger l'assemblage dynamique. Je l'ai appelé en tant que classe directement, i.e.:
MyClass c = new MyClass();
c.start();
Et le même problème persiste, il ne semble pas être lié à être chargé dynamiquement.