API кеша - это базовая модель, которая помогает нам обеспечить декларативное кэширование, оно не предназначено для абстрагирования от каждого возможного использования кэширования.
Каждая реализация кэша имеет getNativeCache
, который возвращает базовую реализацию библиотеки. Если вам нужен доступ к специфической для библиотеки функции, это то, что вы должны использовать.
Ответ ChrisW звучит интересным, однако я реализовал кэширующийся сопоставитель из этой ссылки: http://msdn.microsoft.com/en-us/library/bb669135.aspx
Это увеличило скорость приблизительно с 11,5 с к 160 мс, которая, вероятно, достаточно хороша на данный момент. Если его все еще не достаточно быстрый я реализую решение ChrisW.:)
Это медленно, потому что это загружается с сети. Для фиксации этого сделайте следующее:
Вы попытались создать фиктивный сопоставитель, который возвращает пустой указатель для какого-либо пути даты и передачи, которые в загрузку управляют? Что-то как:
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");
Посмотрите на файл DTD, существуют еще некоторые ссылки онлайн на .mod файлы, возможно, они замедляют процесс. Можно также попытаться прокомментировать некоторых из них, некоторых из них, но не все отмечены, как "требуется" в комментариях.