XmlSerializer не сериализуется в одном конкретном сценарии - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь сериализовать довольно простой объектный граф.У меня есть модель Settings с парой скалярных свойств и списком типа Template.Этот Template объект имеет 2 строковых свойства («Имя» и «Путь»).Если я только устанавливаю «Имя» для экземпляра Template, а затем сериализуюсь, он прекрасно создает файл XML.Он десериализуется правильно, и я счастлив.

Теперь, если я загружаю файл в память из сторонней библиотеки DLL и сохраняю этот путь к свойству «Путь», сериализатор больше не работает.В окне вывода Visual Studio нет исключений или ошибок.

Что может произойти при загрузке этого файла, что помешает сериализации моих данных?В моем графе объектов нет ссылок на какие-либо сторонние объекты.

[Serializable]
public class Settings
{
    public bool ReplicateToolParameters { get; set; }
    public bool CopyTool { get; set; }
    public List<Template> Templates { get; set; }

    public Settings()
    {
        ReplicateToolParameters = false;
        CopyStaticMaskTool = false;
        Templates = new List<Template>();
    }
}

[Serializable]
public class Template
{
    public string Name { get; set; }
    public string Path { get; set; }
}

В My TemplateView есть кнопка «Загрузить», которая создает OpenFileDialog для выбора «.avp» (сторонний поставщикпроприетарный тип файла).Когда я выбираю файл, файл .avp загружается в память (используя сторонний объект в моей модели представления), и я сохраняю путь к файлу в свойстве «Путь» в моей модели Template.Если я не загружаю файл, я могу сериализоваться нормально.Просто загружая этот файл, он больше не работает.

...