当您注册一个 VirtualPathProvider 时,您仍然希望以前的 VPP 工作。我已经看到通过两种方式完成此操作:一种是使用base
(例如,if base.FileExists(virtualPath)
),另一种是使用Previous
(例如,if Previous.FileExists(virtualPath)
)。这些之间有什么区别,一种优于另一种?
问问题
191 次
1 回答
0
看起来,当您向 注册 aVirtualPathProvider
时HostingEnvironment
,它会为VirtualPathProvider
您Initialize
的VirtualPathProvider
. 此初始化方法将提供的 VPP 保存到字段中_previous
。
基类提供的虚方法VirtualPathProvider
使用_previous
方式如下:
public virtual bool FileExists(string virtualPath)
{
return this._previous != null && this._previous.FileExists(virtualPath);
}
每个方法都会检查以确保它_previous
被重视,然后提供相关的响应。看起来 callbase
比 call 更安全Previous
,因为它base
会为你做所有的null
检查。
于 2013-03-25T18:48:57.313 回答