У меня возникла проблема с записью конфигурации в файл XML, когда моя база данных создана из устаревшего приложения. XML-документ выглядит так, как будто он говорит мне, в чем проблема, но я не могу понять, что это значит.Отладка сообщения «Было сообщение об ошибке XML»
Мое приложение позволяет пользователю сохранять конфигурацию в xml-файле из базы данных, и я использую XmlSerializer и filestream для записи моего класса конфигурации в XML-документ.
Это метод записи в классе конфигурации
public void Write(Stream stream)
{
XmlSerializer serializer = new XmlSerializer(typeof(Configuration));
serializer.Serialize(stream, this);
}
Это утверждение вызова, что
using (FileStream fileStream = new FileStream(filename, FileMode.Create))
{
config.Write(fileStream);
}
Это все работает отлично, и я могу сохранить файл конфигурации. Проблема, которую я имею, состоит в том, что у нас есть устаревшее приложение psuedo, которое используется для установки всего, однако, если это задает базу данных, тогда все загружается отлично в моем приложении, но всякий раз, когда я пытаюсь сохранить конфигурацию из одной из этих баз данных, она вызывает «Ошибка создания XML-документа» сообщение об ошибке.
Я действительно не понимаю, как отлаживать это. Когда я смотрю на сгенерированный файл XML он просто останавливается в середине пути, например, через
<ServerIPAddress1>127</ServerIPAddress1>
<ServerIPAddress2>0</ServerIPAddress2>
<ServerIPAddress3>0</ServerIPAddress3>
<ServerIPAddress4>1</Ser
Когда я увидел это, я предположил, что это должно означать, что следующее свойство было значение придав ему проблему, однако на обеих версиях это значение пустой.
Может кто-нибудь дать мне представление о том, где искать эту ошибку. Я пробовал много разных вещей, таких как загрузка конфигурации, которая могла быть сохранена для изменения xml, поэтому она должным образом отформатирована и все работает, когда я сохраняю ее в файле, и все работает правильно.
Параметр 'InvalidOperationException' вы видите, это не полезно, но' InnerException' внутри будет. Найдите это и обновите вопрос с помощью сообщения. Также см. [Данное руководство] (https://msdn.microsoft.com/en-us/library/aa302290.aspx). –
Когда я включил исключения clr, он дал мне точное поле, которое было неправильным. Старое приложение устанавливало значение enum 255, которого у нас не было в нашей версии. Так или иначе, это было лишнее, поэтому мы просто удалили его, и теперь все отлично работает! Как пометить ваш комментарий в качестве ответа здесь? – Keithin8a
Свойство проблемы было около 7 или 8 свойств перед свойством serverIPAddress4. поэтому мне было бы интересно узнать, почему он решил остановиться там. Я предполагаю, что никто не узнает ответ на этот вопрос, вероятно, это будет просто микро-причуда, от которой мы все должны пострадать! – Keithin8a