2013-10-10 5 views
1

Я пишу программу Windows Forms на C#, и я хочу иметь возможность сохранять информацию в XML-файле. Когда я сначала создать файл XML, я просто хочу, чтобы иметь возможность объявления ДекларацииСоздайте пустой XML-файл, а затем добавьте к нему

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 

, а затем корневой узел, который я хочу под названием «Контакты».

Конечный файл должен выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<Contacts> 
    <Contact> 
     <Name>name</Name> 
     <Address>address</Address> 
    <Contact> 
<Contacts> 

Там будет несколько <Contact></Contact> элементов.

Проблема, с которой я столкнулась, - это когда я сначала создаю XML-файл.

Мои операции XML находятся в их собственном классе. Это метод для создания файла:

public void createFile() 
    { 
     if (!File.Exists(fileName)) 
     { 
      //Populate with data here if necessary, then save to make sure it exists 
      xmlFile = new XDocument(
       new XDeclaration("1.0", "utf-8", "yes"), 
       new XComment("XML File for storing " + RootName)); 
      xmlFile.Save(FileName); 
     } 
    } 

Когда я пытаюсь запустить это, я получаю ArgumentNullException была необработанной ошибки.

Любые идеи, как получить данные в файле и сохранить его? Благодаря

+1

Вы считаете отладкой? Или посмотрите на стек, чтобы узнать, какой аргумент имеет значение null. –

ответ

5

Вам нужен корневой элемент в файле:

xmlFile.Add(new XElement("Contacts")); 

Хотя ошибка вы получаете говорит что-то еще происходит. Возможно, Filename null?

+0

Я добавил, что сразу после нового оператора XDocument, и я все еще получаю ошибку. Файл никогда не создается. Кажется, я должен что-то заполнить файлом, но я не уверен, что. – RXC

+1

Какая строка кода вызывает исключение? – Chris

+0

Ошибка xmlFile.Save (FileName). Я выяснил проблему, я никогда не устанавливал FileName, которое является общедоступным аксессором для частного поля поддержки. – RXC

Смежные вопросы