Производительность VirtualPathProvider

В настоящее время я пытаюсь создать библиотеку классов и внедрить в нее представления MVC, чтобы мы могли делиться ею с несколькими сайтами, как описано здесь: http://www.wynia.org/wordpress/2008/12/aspnet-mvc-plugins/

Производительность важна, поэтому я пытаюсь понять, стоит ли идти этим путем. Может ли кто-нибудь объяснить VirtualPathProvider несколько кратко, если это возможно?

Я заметил, что этот метод вызывается только один раз для каждого файла.

public override VirtualFile GetFile(string virtualPath)
{
    if (ResourceFileExists(virtualPath))
         return new EmbeddedVirtualFile(virtualPath);

    return base.GetFile(virtualPath);
}

VirtualPathProvider кеширует файл / представление автоматически? В другой статье (объясняющей то же самое) они заявили, что вы должны переопределить GetCacheDependency:

public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
{
    if (ResourceFileExists(virtualPath))
        // Return null or otherwise ASP.NET will try to monitor the file.
        // Is actually the default implementation.
        return null;

    return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}

То есть возвращение нулевого значения здесь не влияет на "кеширование" VirtualFile? Я спрашиваю об этом потому, что созданная нами специальная реализация VirtualFile под названием EmbeddedVirtualFile использует этот фрагмент кода в переопределенном методе Open():

var assembly = Assembly.LoadFile(assemblyName);
if (assembly != null)
{
    Stream resourceStream = assembly.GetManifestResourceStream(resourceName);
    return resourceStream;
}

Я немного боюсь, что это повлияет на производительность. Может ли кто-нибудь меня успокоить?

0 ответов

Другие вопросы по тегам