Ich habe eine Anwendung, in der ich vorhabe, alles, was in dem Code geschieht, in einer Protokolldatei aufzuschreiben. Also habe ich ein wpf-Projekt namens FileCreation
erstellt, wo ich einfach eine Datei erstelle und dann Daten an sie anschließe. Ich möchte auch die Daten speichern, wenn die Anwendung gestartet wurde. Es folgt der Code:Fehler: Aufruf des Konstruktors
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Log("Application started on : " + DateTime.Now.ToString("dd-M-yyyy"));
}
void Log(string data)
{
string path = @"C:\\Logs\\" + DateTime.Now.ToString("dd-M-yyyy") + ".txt";
if (File.Exists(path))
{
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(data);
}
}
else
{
StreamWriter myFile = new StreamWriter(path);
myFile.WriteLine(data);
myFile.Close();
}
}
}
So in dem obigen Code, ich habe eine Funktion Log
erstellt, die String-Daten als Parameter akzeptiert. Es erstellt eine Datei, wenn die Datei nicht erstellt wird, und fügt dann Daten an sie an. Ich möchte auch aufnehmen, wenn die Anwendung gestartet wurde, also dachte ich daran, es auch zu schreiben. So enthalten die Log()
nach InitializeComponent();
, weil ich denke, das ist das erste, was initialisiert wird, wenn die Anwendung startet. Aber es gibt mir unter Fehler:
Ich weiß, warum dieser Fehler kommt, weil beim Starten sie nicht wissen, was ist Log()
Funktion. Aber dann, wo man es definiert. Ich habe auch eine Frage. Ich habe es zuerst auf meinem System getestet und es hat perfekt funktioniert. Als ich es auf einem anderen System getestet habe, gab es nur diesen Fehler.
Warum gab es mir diesen Fehler nicht auf meinem System.?
Wie kann ich es in meinem Code umgehen?
Gibt es eine innere Ausnahme? –
@YacoubMassad So überprüfen Sie es.? –
Können Sie Ihre Anwendung im Visual Studio debuggen? Beim Debugging sollten Sie die Details der Ausnahme einschließlich der inneren Ausnahme anzeigen können. –