Geggi Geschrieben 26. Mai 2010 Autor Geschrieben 26. Mai 2010 Dann kommt der fehler.. (Mcolli methode) Informationen über das Aufrufen von JIT-Debuggen anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung. ************** Ausnahmetext ************** System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei Stranger.Interface.saveVar(String varName, Object varValue, String pathXML) in C:\Users\Joshy\Desktop\Game\WindowsFormsApplication4\WindowsFormsApplication4\Interface.cs:Zeile 210. bei Stranger.Interface.button5_Click(Object sender, EventArgs e) in C:\Users\Joshy\Desktop\Game\WindowsFormsApplication4\WindowsFormsApplication4\Interface.cs:Zeile 138. bei System.Windows.Forms.Control.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ButtonBase.WndProc(Message& m) bei System.Windows.Forms.Button.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Geladene Assemblys ************** mscorlib Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll. ---------------------------------------- StangerGame Assembly-Version: 1.0.0.0. Win32-Version: 1.0.0.0. CodeBase: file:///C:/Users/Joshy/Desktop/Game/WindowsFormsApplication4/WindowsFormsApplication4/bin/Debug/StangerGame.exe. ---------------------------------------- System.Windows.Forms Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll. ---------------------------------------- System Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll. ---------------------------------------- System.Drawing Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll. ---------------------------------------- mscorlib.resources Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll. ---------------------------------------- System.Xml Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll. ---------------------------------------- System.Windows.Forms.resources Assembly-Version: 2.0.0.0. Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900). CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll. ---------------------------------------- ************** JIT-Debuggen ************** Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der Konfigurationsdatei der Anwendung oder des Computers (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden. Die Anwendung muss mit aktiviertem Debuggen kompiliert werden. Zum Beispiel: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten Ausnahmen an den JIT-Debugger gesendet, der auf dem Computer registriert ist, und nicht in diesem Dialogfeld behandelt. Zitieren
Mcolli Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Also der Fehler kann nur vor der try Anweisung oder im catch-block auftreten. Die Belegung der Parameter wäre gut zu wissen. Zum Debuggen: Setz mal ne Halte-Marke an den Anfang der Methode (Dann ist die Zeile Rot Markeirt und ein roter Punkt ist da wo die Zeilen nummer steht). Dann führste das Programm aus drückst Deinen Knopf da und der hält an der halte Marke... mit f10 und f11 kannste dann einzel bzw. Prozedurschritte machen. Und dann schreib mal die Anweisung auf die zum der Exception führt. Zu sätzlich wäre die XML Datei die evtl erzeugt wurde nett.... Ich konnte jetzt kein Szenario nachbauen die zu dem Fehler führt. Einzige Fehler den ich erzuegen konnte war eine ArguementOutOfRange-Exception bei der Angabe eines Dateinamens statt eines Dateipfades für die XML_Datei. Zitieren
Mcolli Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Also fehler gefunden: Wenn der Parameter varValue die Belegung null hat tritt der fehler auf. Die Frage ist in wie fern es sinn voll ist das abzuspeichern. Wenn Du das machen willst dann musst Du Folgendes ändern: Methode: saveVar(...) Nach dem code: // Prüfen ob der Ordner bereits existiert / wenn nicht anlegen if (!System.IO.Directory.Exists(pfadOrdner)) { System.IO.Directory.CreateDirectory(pfadOrdner); } folgendes einfügen: if (varValue == null) { varValue = "@!null!@"; } Methode getVar(...) diesen Teilcode else if (varType == typeof(string)) { return varNode.InnerText; } durch diesen ERSETZEN: else if (varType == typeof(string)) { if (varNode.InnerText.Equals("@!null!@") ) { return null; } return varNode.InnerText; } Ich habe den String "@!null!@" als interpretation für null gewählt, da so ein String mit dem inhalt "null" auch richtig als String wieder zurückgegeben wird und nicht als null im Sinne von nix. Zitieren
Geggi Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 Hm wenn ich auf laden drücke kommt das (bild) Zitieren
Mcolli Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 So lasset mich den Umstand eurer Konfusität erleutern oh holder Knappe: DEm Property "QuestItemName" deiner (scheinbar) neuen Instanz "qu" wurde noch NIE etwas zugewiesen ... somit ist das mit Null belegt, was wieder rum dazu führt, dass die von Object geerbte Methode "GetType()" nicht aufgerufen werden kann (sowas wie null.GetType() geht NICHT). Der korrekte Auruf der Methode getVar wäre daher: qu.QuestItemName = (string)getVar("QuestItemName", typeof(string), @"C:\Desktop\safe.xml"); Ich vermute aber einen starkes Design Problem in deiner Anwendung, da ich davon ausgehe, dass "qu" sowas wie eine Quest in einem Rollenspiel darstellt und es somit aber witzig viele Instanzen dafür geben wird. Du würdest mit einer Implementierung von ISerializeable bei der Klasse "Quest" oder so besser fahrn. Ich habe im Mom eh wenig zu tun und bin überaus edel vom Gemüt . Wenn Du magst kannste dein Project mal zippen und bei Rapidshare Uppen, mir den Link und das pw für das archiv dann per PN zu kommen lassen und ich bau Dir deine Klasse so um dass Du ganz Easy Quest laden und speichern kannst, ich würde Dir auch nen Questmanager bauen damit das ganze noch einfacher von der Handhabung ist ..... dauert auch nicht lange Zitieren
Geggi Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 hab dir ne private nachricht geschickt, hoffe die ist angekommen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.