Замена XmlSerializer из-за медленного запуска приложения WPF - PullRequest
0 голосов
/ 23 октября 2010

Я написал приложение WPF, которое читает список фильмов из файла XML в сетевой папке. Когда я начал исследовать медленный запуск, оказалось, что XmlSerializer сильно перегружен.

Сейчас я использовал sgen для сборки сборок до публикации проекта, но сейчас я ищу лучшее решение. Я посмотрел на класс BinaryFormatter, но файл XML создается скриптом PHP, работающим на сервере Linux.

Могу ли я лучше использовать средство чтения XML-файлов и циклически проходить по файлу самостоятельно, или есть лучший вариант? Я стремлюсь к скорости, поэтому любые предложения по замене моего XmlSerializer приветствуются.

Вот код для десериализации файла.

    public List<Movie> DeSerializeXmlObject(string filename)
    {
        List<Movie> movies;
        Stream stream = File.Open(filename, FileMode.Open);
        XmlSerializer s = new XmlSerializer(typeof(List<Movie>));
        movies = (List<Movie>)s.Deserialize(stream);
        stream.Close();
        return movies;
    }

Я не мог понять, как прикреплять файлы, поэтому вставил XML-файл в pastebin. http://pastebin.com/Rxsy0R3c Спасибо Ben

1 Ответ

0 голосов
/ 23 октября 2010

Существует высокая вероятность того, что вы делаете что-то не так.Анализ даже 1 МБ xml займет не более 1 секунды.Не могли бы вы опубликовать свой код сериализации и десериализации с файлом XML, который вы пытаетесь проанализировать?

Редактировать: Извините, я думаю, что не могу вам помочь.Ваш код и файл выглядят хорошо.Единственный вариант, который я вижу сейчас, - это ленивая загрузка этого файла в фоновом режиме, а затем возврат фильмов в потоке графического интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...