VirtualPathProvider.GetCacheDependency(String, IEnumerable, DateTime) VirtualPathProvider.GetCacheDependency(String, IEnumerable, DateTime) VirtualPathProvider.GetCacheDependency(String, IEnumerable, DateTime) VirtualPathProvider.GetCacheDependency(String, IEnumerable, DateTime) Method

定義

基於指定的虛擬路徑建立快取相依性。Creates a cache dependency based on the specified virtual paths.

public:
 virtual System::Web::Caching::CacheDependency ^ GetCacheDependency(System::String ^ virtualPath, System::Collections::IEnumerable ^ virtualPathDependencies, DateTime utcStart);
public virtual System.Web.Caching.CacheDependency GetCacheDependency (string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart);
abstract member GetCacheDependency : string * System.Collections.IEnumerable * DateTime -> System.Web.Caching.CacheDependency
override this.GetCacheDependency : string * System.Collections.IEnumerable * DateTime -> System.Web.Caching.CacheDependency
Public Overridable Function GetCacheDependency (virtualPath As String, virtualPathDependencies As IEnumerable, utcStart As DateTime) As CacheDependency

參數

virtualPath
String String String String

主要虛擬資源的路徑。The path to the primary virtual resource.

virtualPathDependencies
IEnumerable IEnumerable IEnumerable IEnumerable

主要虛擬資源所需之其他資源的路徑陣列。An array of paths to other resources required by the primary virtual resource.

utcStart
DateTime DateTime DateTime DateTime

UTC 時間,會在該期間讀取虛擬資源。The UTC time at which the virtual resources were read.

傳回

指定虛擬資源的 CacheDependency 物件。A CacheDependency object for the specified virtual resources.

範例

下列程式碼範例會實作GetCacheDependency方法,自訂VirtualPathProvider類別。The following code example implements the GetCacheDependency method for a custom VirtualPathProvider class. 完整的程式碼才能執行範例時,請參閱 < 範例 > 一節的VirtualPathProvider類別概觀主題。For the full code required to run the example, see the Example section of the VirtualPathProvider class overview topic.

public override CacheDependency GetCacheDependency(
  string virtualPath, 
  System.Collections.IEnumerable virtualPathDependencies, 
  DateTime utcStart)
{
  if (IsPathVirtual(virtualPath))
  {
    System.Collections.Specialized.StringCollection fullPathDependencies = null;

    // Get the full path to all dependencies.
    foreach (string virtualDependency in virtualPathDependencies)
    {
      if (fullPathDependencies == null)
        fullPathDependencies = new System.Collections.Specialized.StringCollection();

      fullPathDependencies.Add(virtualDependency);
    }
    if (fullPathDependencies == null)
      return null;

    // Copy the list of full-path dependencies into an array.
    string[] fullPathDependenciesArray = new string[fullPathDependencies.Count];
    fullPathDependencies.CopyTo(fullPathDependenciesArray, 0);
    // Copy the virtual path into an array.
    string[] virtualPathArray = new string[1];
    virtualPathArray[0] = virtualPath;

    return new CacheDependency(virtualPathArray, fullPathDependenciesArray, utcStart);
  }
  else
    return Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
Public Overrides Function GetCacheDependency(ByVal virtualPath As String, ByVal virtualPathDependencies As IEnumerable, ByVal utcStart As Date) As CacheDependency
  If (IsPathVirtual(virtualPath)) Then

    Dim fullPathDependencies As System.Collections.Specialized.StringCollection
    fullPathDependencies = Nothing

    ' Get the full path to all dependencies.
    For Each virtualDependency As String In virtualPathDependencies
      If fullPathDependencies Is Nothing Then
        fullPathDependencies = New System.Collections.Specialized.StringCollection
      End If

      fullPathDependencies.Add(virtualDependency)
    Next

    If fullPathDependencies Is Nothing Then
      Return Nothing
    End If

    Dim fullPathDependenciesArray As String()
    fullPathDependencies.CopyTo(fullPathDependenciesArray, 0)

    Return New CacheDependency(fullPathDependenciesArray, utcStart)
  Else
    Return Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart)
  End If
End Function

備註

預設實作GetCacheDependency方法會傳回nullThe default implementation of the GetCacheDependency method returns null. 快取虛擬資源以供稍後使用必須覆寫其中一個GetCacheDependency方法或GetFileHash方法。To cache virtual resources for later use you must override either the GetCacheDependency method or the GetFileHash method.

適用於