다음을 통해 공유


SiteMapProvider.Initialize(String, NameValueCollection) 메서드

정의

영구 스토리지에서 사이트 맵 데이터를 로드하는 데 필요한 모든 리소스를 비롯하여 SiteMapProvider 구현을 초기화합니다.

public:
 override void Initialize(System::String ^ name, System::Collections::Specialized::NameValueCollection ^ attributes);
public override void Initialize (string name, System.Collections.Specialized.NameValueCollection attributes);
override this.Initialize : string * System.Collections.Specialized.NameValueCollection -> unit
Public Overrides Sub Initialize (name As String, attributes As NameValueCollection)

매개 변수

name
String

초기화할 공급자의 Name입니다.

attributes
NameValueCollection

공급자 초기화에 도움이 되는 추가 특성을 포함할 수 있는 NameValueCollection입니다. 이러한 특성은 Web.config 파일의 사이트 맵 공급자 구성에서 읽어옵니다.

예제

다음 코드 예제에서는 재정의 하는 방법에 설명 합니다 Initialize Microsoft Access 데이터베이스 연결을 준비 하는 방법입니다.

에 대 한 연결 문자열을 OleDbConnection 개체가 전달 됩니다 합니다 NameValueCollection 의 매개 변수는 Initialize 메서드. 이 경우 연결 문자열은 Web.config 파일에서 공급자 관련 섹션에서 제공 됩니다. 이때 accessSiteMapConnectionString 사이트 맵 데이터를 호스팅하는 Microsoft Access 데이터베이스에 연결 문자열을 포함 합니다.

<siteMap defaultProvider="AccessSiteMapProvider">  
  <providers>  
     <add  
       name="AccessSiteMapProvider"  
       type="Samples.AspNet.AccessSiteMapProvider,Samples.AspNet"  
       accessSiteMapConnectionString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\\SomeUNCShare\\sitemap.mdb"/>  
  </providers>   
 </siteMap>  

이 코드 예제는에 대해 제공 된 큰 예제의 일부는 SiteMapProvider 클래스입니다.

   // Initialize is used to initialize the properties and any state that the
   // AccessProvider holds, but is not used to build the site map.
   // The site map is built when the BuildSiteMap method is called.
   virtual void Initialize( String^ name, NameValueCollection^ attributes ) override
   {
      if ( IsInitialized )
            return;

      StaticSiteMapProvider::Initialize( name, attributes );
      
      // Create and test the connection to the Microsoft Access database.
      // Retrieve the Value of the Access connection string from the
      // attributes NameValueCollection.
      String^ connectionString = attributes[ AccessConnectionStringName ];
      if ( nullptr == connectionString || connectionString->Length == 0 )
            throw gcnew Exception( "The connection string was not found." );
      else
            accessConnection = gcnew OleDbConnection( connectionString );

      initialized = true;
   }


protected:
// Initialize is used to initialize the properties and any state that the
// AccessProvider holds, but is not used to build the site map.
// The site map is built when the BuildSiteMap method is called.
public override void Initialize(string name, NameValueCollection attributes) {
    if (IsInitialized)
        return;

    base.Initialize(name, attributes);

    // Create and test the connection to the Microsoft Access database.

    // Retrieve the Value of the Access connection string from the
    // attributes NameValueCollection.
    string connectionString = attributes[AccessConnectionStringName];

    if (null == connectionString || connectionString.Length == 0)
        throw new Exception ("The connection string was not found.");
    else
        accessConnection = new OleDbConnection(connectionString);

    initialized = true;
}
' Initialize is used to initialize the properties and any state that the
' AccessProvider holds, but is not used to build the site map.
' The site map is built when the BuildSiteMap method is called.
Public Overrides Sub Initialize(ByVal name As String, ByVal attributes As NameValueCollection)
    If IsInitialized Then
        Return
    End If
    MyBase.Initialize(name, attributes)

    ' Create and test the connection to the Microsoft Access database.
    ' Retrieve the Value of the Access connection string from the
    ' attributes NameValueCollection.
    Dim connectionString As String = attributes(AccessConnectionStringName)

    If Nothing = connectionString OrElse connectionString.Length = 0 Then
        Throw New Exception("The connection string was not found.")
    Else
        accessConnection = New OleDbConnection(connectionString)
    End If
    initialized = True
End Sub

설명

Initialize 메서드는 실제로 사이트 맵을 빌드하지만 상태를 준비 하는 SiteMapProvider 이렇게 하려면 개체입니다. 기본 구현은 초기화는 SecurityTrimmingEnabled 사이트 탐색 구성에서 사이트 맵 공급자에 대 한 속성입니다.

SiteMapProvider에서 파생되는 클래스는 Initialize 메서드를 재정의하여 영구 스토리지에서 사이트 맵 데이터를 로드하는 데 필요한 모든 상태와 리소스를 초기화할 수 있습니다. 예를 들어 파생된 클래스는 파일을 사용 하는 사이트 맵 데이터를 저장 하는 경우 모든 파일 초기화를 수행할 수에 Initialize 메서드. 파생된 클래스에서 다른 유형의 데이터 저장소, 관계형 데이터베이스와 같은 데이터베이스 연결을 초기화할 수행할 수 있습니다.

ASP.NET 구성 시스템에서 파일 이름 또는 연결 문자열 등의 추가 특성은 읽고 전달할 합니다 Initialize 메서드를 사용 하 여 해당 NameValueCollection 매개 변수입니다.

상속자 참고

재정의 하는 경우는 Initialize(String, NameValueCollection) 파생된 클래스에서 메서드를 먼저 호출 해야는 Initialize(String, NameValueCollection) 직접 초기화를 수행 하기 전에 기본 클래스의 메서드입니다.

적용 대상

추가 정보