VirtualPathProvider 클래스

정의

웹 애플리케이션이 가상 파일 시스템에서 리소스를 검색할 수 있도록 하는 메서드 집합을 제공합니다.

public ref class VirtualPathProvider abstract : MarshalByRefObject
public abstract class VirtualPathProvider : MarshalByRefObject
type VirtualPathProvider = class
    inherit MarshalByRefObject
Public MustInherit Class VirtualPathProvider
Inherits MarshalByRefObject
상속
VirtualPathProvider

예제

다음 코드 예제는 개체에 VirtualPathProvider 저장된 정보를 사용하여 가상 파일 시스템을 만드는 클래스 구현입니다 DataSet . 코드 예제는 개체에 로드되는 데이터 저장소의 가상 리소스를 제공하기 위해 클래스 및 VirtualFile 클래스에 대한 VirtualDirectory 코드 예제와 DataSet 함께 작동합니다.

이 예제에는 VirtualPathProvider 클래스 구현, DataSet 개체를 채우는 데 사용되는 XML 데이터 파일, 컴파일 시스템에 AppStart 클래스를 등록하는 데 사용되는 AppInitialize 메서드가 포함된 VirtualPathProvider 개체 및 가상 파일에 대한 링크를 제공하는 ASP.NET 페이지가 있습니다.

애플리케이션에서 이 샘플 코드를 사용하려면 다음 단계를 수행합니다.

  1. 웹 서버에서 샘플 애플리케이션을 만듭니다.

  2. 사용자 지정 VirtualPathProvider 개체의 소스 코드(아래 참조)를 애플리케이션 App_Code 디렉터리의 파일에 복사합니다.

  3. 사용자 지정 VirtualDirectory 개체의 소스 코드(클래스 개요 항목의 VirtualDirectory 예제 섹션 참조)를 애플리케이션 App_Code 디렉터리의 파일에 복사합니다.

  4. 사용자 지정 VirtualFile 개체의 소스 코드(클래스 개요 항목의 VirtualFile 예제 섹션 참조)를 애플리케이션 App_Code 디렉터리의 파일에 복사합니다.

  5. 개체의 AppStart 소스 코드(아래 참조)를 애플리케이션 App_Code 디렉터리의 파일에 복사합니다.

  6. XML 데이터(아래 참조)를 애플리케이션 XMLData.xml 디렉터리의 파일에 명명된 App_Data 파일에 복사합니다.

  7. default.aspx 파일(아래 참조)을 샘플 애플리케이션의 루트 디렉터리에 복사합니다. 웹 브라우저를 사용하여 파일을 연 default.aspx 다음 페이지의 링크를 클릭하여 가상 파일의 내용을 확인합니다.

첫 번째 예제는 사용자 지정 VirtualPathProvider 클래스입니다. DirectoryExists 요청된 디렉터리가 가상 파일 시스템에 있는지 여부를 나타내기 위해 메서드 및 FileExists 메서드가 재정의됩니다. GetDirectory 가상 파일 시스템의 정보가 포함된 사용자 지정 GetFile 및 인스턴스를 반환하기 위해 메서드 및 VirtualDirectoryVirtualFile 메서드가 재정의됩니다.

또한 클래스는 가상 파일 시스템 데이터를 포함하는 개체에 GetVirtualDataVirtualDirectory 액세스 VirtualFile 하기 위해 클래스에서 사용하는 메서드를 제공합니다DataSet. 프로덕션 구현에서 이 메서드는 일반적으로 데이터 저장소와의 상호 작용을 담당하는 비즈니스 개체에서 구현됩니다.

using System;
using System.Data;
using System.Security.Permissions;
using System.Web;
using System.Web.Caching;
using System.Web.Hosting;

namespace Samples.AspNet.CS
{
  [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Medium)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.High)]
  public class SamplePathProvider : VirtualPathProvider
  {
    private string dataFile;

    public SamplePathProvider()
      : base()
    {
    }

    protected override void Initialize()
    {
      // Set the datafile path relative to the application's path.
      dataFile = HostingEnvironment.ApplicationPhysicalPath + "App_Data\\XMLData.xml";
    }

    /// <summary>
    ///   Data set provider for the SampleVirtualDirectory and
    ///   SampleVirtualFile classes. In a production application
    ///   this method would be on a provider class that accesses
    ///   the virtual resource data source.
    /// </summary>
    /// <returns>
    ///   The System.Data.DataSet containing the virtual resources 
    ///   provided by the SamplePathProvider.
    /// </returns>
    public DataSet GetVirtualData()
    {
      // Get the data from the cache.
      DataSet ds = (DataSet)HostingEnvironment.Cache.Get("VPPData");
      if (ds == null)
      {
        // Data not in cache. Read XML file.
        ds = new DataSet();
        ds.ReadXml(dataFile);

        // Make DataSet dependent on XML file.
        CacheDependency cd = new CacheDependency(dataFile);

        // Put DataSet into cache for maximum of 20 minutes.
        HostingEnvironment.Cache.Add("VPPData", ds, cd,
          Cache.NoAbsoluteExpiration,
          new TimeSpan(0, 20, 0),
          CacheItemPriority.Default, null);

        // Set data timestamp.
        DateTime dataTimeStamp = DateTime.Now;
        // Cache it so we can get the timestamp in later calls.
        HostingEnvironment.Cache.Insert("dataTimeStamp", dataTimeStamp, null,
          Cache.NoAbsoluteExpiration,
          new TimeSpan(0, 20, 0),
          CacheItemPriority.Default, null);
      }
      return ds;
    }

    /// <summary>
    ///   Determines whether a specified virtual path is within
    ///   the virtual file system.
    /// </summary>
    /// <param name="virtualPath">An absolute virtual path.</param>
    /// <returns>
    ///   true if the virtual path is within the 
    ///   virtual file sytem; otherwise, false.
    /// </returns>
    private bool IsPathVirtual(string virtualPath)
    {
      String checkPath = VirtualPathUtility.ToAppRelative(virtualPath);
      return checkPath.StartsWith("~/vrdir", StringComparison.InvariantCultureIgnoreCase);
    }

    public override bool FileExists(string virtualPath)
    {
      if (IsPathVirtual(virtualPath))
      {
        SampleVirtualFile file = (SampleVirtualFile)GetFile(virtualPath);
        return file.Exists;
      }
      else
            {
                return Previous.FileExists(virtualPath);
            }
        }

    public override bool DirectoryExists(string virtualDir)
    {
      if (IsPathVirtual(virtualDir))
      {
        SampleVirtualDirectory dir = (SampleVirtualDirectory)GetDirectory(virtualDir);
        return dir.Exists;
      }
      else
            {
                return Previous.DirectoryExists(virtualDir);
            }
        }

    public override VirtualFile GetFile(string virtualPath)
    {
      if (IsPathVirtual(virtualPath))
        return new SampleVirtualFile(virtualPath, this);
      else
        return Previous.GetFile(virtualPath);
    }

    public override VirtualDirectory GetDirectory(string virtualDir)
    {
      if (IsPathVirtual(virtualDir))
        return new SampleVirtualDirectory(virtualDir, this);
      else
        return Previous.GetDirectory(virtualDir);
    }

    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);
            }
        }
  }
}

Imports System.Data
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.Caching
Imports System.Web.Hosting


Namespace Samples.AspNet.VB
  <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Medium), _
   AspNetHostingPermission(SecurityAction.InheritanceDemand, level:=AspNetHostingPermissionLevel.High)> _
  Public Class SamplePathProvider
    Inherits VirtualPathProvider

    Private dataFile As String

    Public Sub New()
      MyBase.New()
    End Sub

    Protected Overrides Sub Initialize()
      ' Set the datafile path relative to the application's path.
      dataFile = HostingEnvironment.ApplicationPhysicalPath & _
        "App_Data\XMLData.xml"
    End Sub

    '   Data set provider for the SampleVirtualFile and
    '   SampleVirtualDirectory classes. In a production application
    '   this method would be on a provider class that accesses
    '   the virtual resource data source.
    '   The System.Data.DataSet containing the virtual resources
    '   provided by the SamplePathProvider.
    Public Function GetVirtualData() As DataSet
      ' Get the data from the cache.
      Dim ds As DataSet
      ds = CType(HostingEnvironment.Cache.Get("VPPData"), DataSet)

      If ds Is Nothing Then
        ' Data set not in cache. Read XML file.
        ds = New DataSet
        ds.ReadXml(dataFile)

        ' Make DataSet dependent on XML file.
        Dim cd As CacheDependency
        cd = New CacheDependency(dataFile)

        ' Put DataSet into cache for maximum of 20 minutes.
        HostingEnvironment.Cache.Add("VPPData", ds, cd, _
         Cache.NoAbsoluteExpiration, _
         New TimeSpan(0, 20, 0), _
         CacheItemPriority.Default, Nothing)

        ' Set data timestamp.
        Dim dataTimeStamp As DateTime
        dataTimeStamp = DateTime.Now
        ' Cache it so we can get the timestamp in later calls.
        HostingEnvironment.Cache.Add("dataTimeStamp", dataTimeStamp, Nothing, _
          Cache.NoAbsoluteExpiration, _
          New TimeSpan(0, 20, 0), _
          CacheItemPriority.Default, Nothing)
      End If
      Return ds
    End Function

    Private Function IsPathVirtual(ByVal virtualPath As String) As Boolean
      Dim checkPath As String
      checkPath = VirtualPathUtility.ToAppRelative(virtualPath)
      Return checkPath.StartsWith("~/vrdir", StringComparison.InvariantCultureIgnoreCase)
    End Function

    Public Overrides Function FileExists(ByVal virtualPath As String) As Boolean
      If (IsPathVirtual(virtualPath)) Then
        Dim file As SampleVirtualFile
        file = CType(GetFile(virtualPath), SampleVirtualFile)
        Return file.Exists
      Else
        Return Previous.FileExists(virtualPath)
      End If
    End Function

    Public Overrides Function DirectoryExists(ByVal virtualDir As String) As Boolean
      If (IsPathVirtual(virtualDir)) Then
        Dim dir As SampleVirtualDirectory
        dir = CType(GetDirectory(virtualDir), SampleVirtualDirectory)
        Return dir.exists
      Else
        Return Previous.DirectoryExists(virtualDir)
      End If
    End Function

    Public Overrides Function GetFile(ByVal virtualPath As String) As VirtualFile
      If (IsPathVirtual(virtualPath)) Then
        Return New SampleVirtualFile(virtualPath, Me)
      Else
        Return Previous.GetFile(virtualPath)
      End If
    End Function

    Public Overrides Function GetDirectory(ByVal virtualDir As String) As VirtualDirectory
      If (IsPathVirtual(virtualDir)) Then
        Return New SampleVirtualDirectory(virtualDir, Me)
      Else
        Return Previous.GetDirectory(virtualDir)
      End If
    End Function

    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
  End Class
End Namespace

두 번째 예제는 사용자 지정 DataSet 개체에서 반환된 개체를 VirtualPathProvider 채우는 데 사용되는 XML 데이터 파일입니다. 이 XML 데이터는 외부 데이터에서 데이터를 검색하기 위해 , VirtualPathProviderVirtualDirectory 개체를 사용하는 VirtualFile방법을 보여 주는 데 사용되며 프로덕션 품질 데이터 저장소를 나타내기 위한 것이 아닙니다.

<?xml version="1.0" encoding="utf-8" ?>
  <resource type="dir"
    path="/vrDir"
    parentPath=""
    content="">
    <resource type="file"
      path="/vrDir/Level1FileA.vrf"
      parentPath="/vrDir"
      content="This is the content of file Level1FileA.">
    </resource>
    <resource type="file"
      path="/vrDir/Level1FileB.vrf"
      parentPath="/vrDir"
      content="This is the content of file Level1FileB.">
    </resource>
    <resource type="dir"
      path="/vrDir/Level2DirA"
      parentPath="/vrDir"
      content="">
    <resource type="file"
      path="/vrDir/Level2DirA/Level2FileA.vrf"
      parentPath="/vrDir/Level2DirA"
      content="This is the content of file Level2FileA.">
    </resource>
    <resource type="file"
      path="/vrDir/Level2DirA/Level2FileB.vrf"
      parentPath="/vrDir/Level2DirA"
      content="This is the content of file Level2FileB.">
    </resource>
  </resource>
  <resource type="dir"
    path="/vrDir/Level2DirB"
    parentPath="/vrDir"
    content="">
    <resource type="file"
      path="/vrDir/Level2DirB/Level2FileA.vrf"
      parentPath="/vrDir/Level2DirB"
      content="This is the content of file Level2FileA.">
    </resource>
    <resource type="file"
      path="/vrDir/Level2DirB/Level2FileB.vrf"
      parentPath="/vrDir/Level2DirB"
      content="This is the content of file Level2FileB.">
    </resource>
  </resource>
</resource>

세 번째 예제에서는 메서드를 AppStart 포함하는 개체를 AppInitialize 제공합니다. 이 메서드는 필요한 사용자 지정 초기화를 수행하기 위해 ASP.NET 애플리케이션을 초기화하는 동안 호출됩니다. 이 경우 사용자 지정 VirtualPathProvider 개체를 ASP.NET 빌드 시스템에 등록합니다.

using System.Web.Hosting;

namespace Samples.AspNet.CS
{
  /// <summary>
  ///   Contains the application initialization method
  ///   for the sample application.
  /// </summary>
  public static class AppStart
  {
    public static void AppInitialize()
    {
      SamplePathProvider sampleProvider = new SamplePathProvider();
      HostingEnvironment.RegisterVirtualPathProvider(sampleProvider);
    } 
  }
}

Imports System.Web.Hosting

Namespace Samples.AspNet.VB

  Public Class AppStart

    Public Shared Sub AppInitialize()
      Dim sampleProvider As SamplePathProvider = New SamplePathProvider()
      HostingEnvironment.RegisterVirtualPathProvider(sampleProvider)
    End Sub

  End Class
End Namespace

마지막 예제는 가상 파일 시스템에 포함 된 가상 파일에 대 한 링크를 포함 하는 ASP.NET 페이지입니다.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <meta http-equiv="Content-Type" content="text/html" />
  <title>Virtual Path Provider Example</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:HyperLink ID="hyperLink1" runat="server" NavigateUrl="vrDir/Level1FileA.vrf" Text="Level 1, File A" /><br />
    <asp:HyperLink ID="hyperLink2" runat="server" NavigateUrl="vrDir/Level1FileB.vrf" Text="Level 1, File B" /><br />
    <asp:HyperLink ID="hyperLink3" runat="server" NavigateUrl="vrDir/Level2DirA/Level2FileA.vrf" Text="Level 2a, File A" /><br />
    <asp:HyperLink ID="hyperLink4" runat="server" NavigateUrl="vrDir/Level2DirA/Level2FileB.vrf" Text="Level 2a, File B" /><br />
    <asp:HyperLink ID="hyperLink5" runat="server" NavigateUrl="vrDir/Level2DirB/Level2FileA.vrf" Text="Level 2b, File A" /><br />
    <asp:HyperLink ID="hyperLink6" runat="server" NavigateUrl="vrDir/Level2DirB/Level2FileB.vrf" Text="Level 2b, File B" /><br />
  </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <meta http-equiv="Content-Type" content="text/html" />
  <title>Virtual Path Provider Example</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:HyperLink ID="hyperLink1" runat="server" NavigateUrl="vrDir/Level1FileA.vrf" Text="Level 1, File A" /><br />
    <asp:HyperLink ID="hyperLink2" runat="server" NavigateUrl="vrDir/Level1FileB.vrf" Text="Level 1, File B" /><br />
    <asp:HyperLink ID="hyperLink3" runat="server" NavigateUrl="vrDir/Level2DirA/Level2FileA.vrf" Text="Level 2a, File A" /><br />
    <asp:HyperLink ID="hyperLink4" runat="server" NavigateUrl="vrDir/Level2DirA/Level2FileB.vrf" Text="Level 2a, File B" /><br />
    <asp:HyperLink ID="hyperLink5" runat="server" NavigateUrl="vrDir/Level2DirB/Level2FileA.vrf" Text="Level 2b, File A" /><br />
    <asp:HyperLink ID="hyperLink6" runat="server" NavigateUrl="vrDir/Level2DirB/Level2FileB.vrf" Text="Level 2b, File B" /><br />
  </form>
</body>
</html>

설명

이 클래스는 VirtualPathProvider 웹 애플리케이션에 대한 가상 파일 시스템을 구현하기 위한 메서드 집합을 제공합니다. 가상 파일 시스템에서 파일 및 디렉터리 서버의 운영 체제에서 제공 하는 파일 시스템 이외의 데이터 저장소에서 관리 합니다. 예를 들어 가상 파일 시스템을 사용하여 SQL Server 데이터베이스에 콘텐츠를 저장할 수 있습니다.

요청에 따라 처리되는 모든 파일을 가상 파일 시스템에 저장할 수 있습니다. 여기에는 다음이 포함됩니다.

  • 페이지, 마스터 페이지, 사용자 컨트롤 및 기타 개체를 ASP.NET.

  • .htm 및 .jpg같은 확장이 있는 표준 웹 페이지.

  • 인스턴스에 매핑된 모든 사용자 지정 확장입니다 BuildProvider .

  • 폴더의 명명된 테마입니다 App_Theme .

가상 파일 시스템에서 애플리케이션 수준 어셈블리를 생성하는 ASP.NET 애플리케이션 폴더 또는 파일을 저장할 수 없습니다. 여기에는 다음이 포함됩니다.

  • Global.asax 파일입니다.

  • 파일을 Web.config.

  • 에서 사용하는 사이트 맵 데이터 파일입니다 XmlSiteMapProvider.

  • 애플리케이션 어셈블리를 포함하거나 애플리케이션 어셈블리를 생성하는 디렉터리: Bin, App_Code, App_GlobalResources모든 App_LocalResources.

  • 애플리케이션 데이터 폴더입니다 App_Data.

메모

웹 사이트가 배포를 위해 미리 컴파일된 경우 인스턴스에서 VirtualPathProvider 제공하는 콘텐츠가 컴파일되지 않으며 미리 컴파일된 사이트에서 인스턴스를 사용하지 않습니다 VirtualPathProvider .

VirtualPathProvider 등록

웹 애플리케이션에서 페이지 구문 분석 또는 컴파일을 수행하기 전에 VirtualPathProvider 메서드를 사용하여 사용자 지정 HostingEnvironment.RegisterVirtualPathProvider 인스턴스를 ASP.NET 컴파일 시스템에 등록해야 합니다.

일반적으로 VirtualPathProvider 인스턴스는 디렉터리에 정의된 메서드 또는 파일의 AppInitializeApp_Code 이벤트 Application_Start 중에 등록 Global.asax 됩니다. 메서드에 인스턴스를 등록하는 VirtualPathProvider 예제는 AppInitialize 예제 섹션을 참조하세요.

다른 이벤트 중에 인스턴스를 VirtualPathProvider 등록할 수 있지만, 새 VirtualPathProvider 인스턴스가 이전에 컴파일된 페이지의 원본을 제공하더라도 인스턴스가 등록되기 전에 VirtualPathProvider 컴파일되고 캐시된 페이지는 무효화되지 않습니다.

구현자 참고

상속하는 VirtualPathProvider의 경우에는 다음 멤버를 재정의해야 합니다.

사용자 지정 VirtualPathProvider 클래스가 가상 파일 시스템의 디렉터리를 지원하는 경우 다음 멤버를 재정의해야 합니다.

  • DirectoryExists(String)

  • GetDirectory(String)

    참고: 가상 파일 시스템에 웹 사이트에 대한 테마가 포함된 경우(가상 App_Themes 디렉터리를 만들어) 사용자 지정 VirtualPathProvider 클래스가 디렉터리를 지원해야 합니다.

    사용자 지정 VirtualPathProvider 클래스는 클래스 및 VirtualFile 클래스에서 파생된 클래스에서 VirtualDirectory 작동합니다. 가상 파일 시스템에서 파일 및 디렉터리 정보를 제공하려면 이러한 형식에서 파생 클래스를 구현해야 합니다. 사용자 지정 VirtualFile 구현의 예제는 클래스 개요 항목의 예제 섹션을 VirtualFile 참조하세요. 사용자 지정 VirtualDirectory 구현의 예제는 클래스 개요 항목의 예제 섹션을 VirtualDirectory 참조하세요.

생성자

Name Description
VirtualPathProvider()

상속된 클래스 인스턴스에서 사용할 클래스를 초기화합니다. 이 생성자는 상속된 클래스에서만 호출할 수 있습니다.

속성

Name Description
Previous

컴파일 시스템에서 이전에 등록된 VirtualPathProvider 개체에 대한 참조를 가져옵니다.

메서드

Name Description
CombineVirtualPaths(String, String)

기본 경로를 상대 경로와 결합하여 가상 리소스에 대한 전체 경로를 반환합니다.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시를 생성하는 데 필요한 모든 관련 정보를 포함하는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
DirectoryExists(String)

디렉터리가 가상 파일 시스템에 있는지 여부를 나타내는 값을 가져옵니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
FileExists(String)

파일이 가상 파일 시스템에 있는지 여부를 나타내는 값을 가져옵니다.

GetCacheDependency(String, IEnumerable, DateTime)

지정된 가상 경로를 기반으로 캐시 종속성을 만듭니다.

GetCacheKey(String)

지정된 가상 경로에 사용할 캐시 키를 반환합니다.

GetDirectory(String)

가상 파일 시스템에서 가상 디렉터리를 가져옵니다.

GetFile(String)

가상 파일 시스템에서 가상 파일을 가져옵니다.

GetFileHash(String, IEnumerable)

지정된 가상 경로의 해시를 반환합니다.

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
Initialize()

인스턴스를 VirtualPathProvider 초기화합니다.

InitializeLifetimeService()

임대가 VirtualPathProvider 생성되지 않도록 하여 개체에 무한 수명을 제공합니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
OpenFile(String)

가상 파일에서 스트림을 반환합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상