Zum Inhalt springen

C# Variablen speichern


Geggi

Empfohlene Beiträge

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.

post-67192-14430448706358_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...