0
我有一個動態加載的程序集的應用程序:新的XmlSerializer(typeof(MyClass))導致內存損壞?
Assembly asm = Assembly.Load("MyClass.DLL");
Type type = asm.GetType("MyClass");
MyClass runningAssembly = (MyClass)Activator.CreateInstance(type);
runningAssembly.start();
一旦加載和start()方法被調用,執行這行代碼:
XmlSerializer deserializer = new XmlSerializer(typeof(MyClass));
而以下異常被拋出:
"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
我一直在絆腳石的原因,並沒有能夠得到它的把握。有沒有人有任何提示?我似乎也無法捕捉到這個錯誤......它通過try/catch正確地發揮了作用。
順便說一句,錯誤沒有總是發生。有時在調試模式下它可以正常工作,但它似乎一旦啓動,即使重新啓動Visual Studio後也會一直髮生。重新啓動將其清除並允許其至少工作一次。從編譯的EXE運行時也會發生這種情況。
編輯
我想同樣的事情,但沒有動態加載的程序集。我把它叫做作爲一類直接,即:
MyClass c = new MyClass();
c.start();
而同樣的問題仍然存在,所以它不會出現可能與被動態加載。