Я пытаюсь создать простую записку для моего собственного использования. Идея состоит в том, чтобы изучить редактирование C#/Mono XML.Ссылка на Null в C# Mono/GTK #
Я не могу найти NullReference, о котором компилятор жалуется. Не знаю, почему. Я не вижу этого. После нескольких дней поиска я сдаюсь ... помогите. :)
Вот код, который вызывает ошибку. Приложение работает нормально, пока я не нажму кнопку «Добавить новую заметку». Он просто падает. Функция add_activated запускается при нажатии кнопки, и она должна использовать функцию AddNote.
Код не заполнен, и у него наверняка есть некоторые логические ошибки. Но я могу справиться с ними. Мне просто интересно, почему это не сработает.
MainActivity.cs:
// (...)
protected void add_activated (object sender, System.EventArgs e)
{
Gtk.TextBuffer buffer;
buffer = textview1.Buffer;
Note note = new Note(entry3.Text, buffer.Text);
AddNote (note);
}
public static void AddNote (Note note)
{
string xmlFile = "/home/tomasz/.keeper/keeper.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load (xmlFile);
XmlNode xmlRoot = xmlDoc.CreateElement("keeper");
if (!xmlDoc.DocumentElement.Name.Equals("keeper"))
{
xmlDoc.AppendChild (xmlRoot);
}
XmlNode xmlNote = xmlDoc.CreateElement ("note");
XmlNode xmlTitle = xmlDoc.CreateElement ("title");
XmlNode xmlText = xmlDoc.CreateElement ("text");
xmlRoot.InsertAfter (xmlRoot.LastChild, xmlNote);
xmlTitle.InnerText = note.Title;
xmlNote.InsertAfter (xmlNote.LastChild, xmlTitle);
xmlText.InnerText = note.Text;
xmlNote.InsertAfter (xmlNote.LastChild, xmlText);
xmlDoc.Save (xmlFile);
}
protected void remove_activated (object sender, System.EventArgs e)
{
throw new System.NotImplementedException();
}
}
}
Note.cs:
using System;
namespace Keeper
{
public class Note
{
private string title;
private string text;
public string Title {
get
{
return this.title;
}
set
{
this.title = value;
}
}
public string Text
{
get
{
return this.text;
}
set
{
this.text = value;
}
}
public Note (string title, string text)
{
this.Title = title;
this.Text = text;
}
}
}
Вы должны размещать полное сообщение, предоставленное runtime. –
Вы пытались отладить это? –