XmlDocument и медленная обработка схемы

API кеша - это базовая модель, которая помогает нам обеспечить декларативное кэширование, оно не предназначено для абстрагирования от каждого возможного использования кэширования.

Каждая реализация кэша имеет getNativeCache, который возвращает базовую реализацию библиотеки. Если вам нужен доступ к специфической для библиотеки функции, это то, что вы должны использовать.

5
задан Sprintstar 8 January 2009 в 11:14
поделиться

4 ответа

Ответ ChrisW звучит интересным, однако я реализовал кэширующийся сопоставитель из этой ссылки: http://msdn.microsoft.com/en-us/library/bb669135.aspx

Это увеличило скорость приблизительно с 11,5 с к 160 мс, которая, вероятно, достаточно хороша на данный момент. Если его все еще не достаточно быстрый я реализую решение ChrisW.:)

3
ответ дан 15 December 2019 в 01:12
поделиться

Это медленно, потому что это загружается с сети. Для фиксации этого сделайте следующее:

  • Загрузите *.mod, и *.ent файлы, на которые ссылается DTD (Ваш экземпляр XmlResolver скажет Вам названия URIs, которые разыскиваются),
  • Добавьте эти файлы к своему проекту как файлы ресурсов
  • Определите подкласс XmlResolver, GetEntity которого () метод возвращает поток, созданный из локального файла ресурсов
0
ответ дан 15 December 2019 в 01:12
поделиться

Вы попытались создать фиктивный сопоставитель, который возвращает пустой указатель для какого-либо пути даты и передачи, которые в загрузку управляют? Что-то как:

class DummyResolver : XmlUrlResolver 
{
    public override Uri ResolveUri (Uri baseUri, String relativeUri) 
    {
       return null;
    }
}

XmlDocument xmlDocument = new XmlDocument();
xmlDocument.XmlResolver = new DummyResolver();

xmlDocument.Load(@"whatever.xml");
-1
ответ дан 15 December 2019 в 01:12
поделиться

Посмотрите на файл DTD, существуют еще некоторые ссылки онлайн на .mod файлы, возможно, они замедляют процесс. Можно также попытаться прокомментировать некоторых из них, некоторых из них, но не все отмечены, как "требуется" в комментариях.

0
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: