SiteMapProvider.Initialize(String, NameValueCollection) 메서드

정의

영구 스토리지에서 사이트 맵 데이터를 로드하는 데 필요한 모든 리소스를 비롯하여 SiteMapProvider 구현을 초기화합니다.Initializes the SiteMapProvider implementation, including any resources that are needed to load site map data from persistent storage.

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입니다.The Name of the provider to initialize.

attributes
NameValueCollection

공급자 초기화에 도움이 되는 추가 특성을 포함할 수 있는 NameValueCollection입니다.A NameValueCollection that can contain additional attributes to help initialize the provider. 이러한 특성은 Web.config 파일에서 사이트 맵 공급자 구성에서 읽혀집니다.These attributes are read from the site map provider configuration in the Web.config file.

예제

다음 코드 예제에서는 재정의 하는 방법에 설명 합니다 Initialize Microsoft Access 데이터베이스 연결을 준비 하는 방법입니다.The following code example demonstrates how to override the Initialize method to prepare a Microsoft Access database connection.

에 대 한 연결 문자열을 OleDbConnection 개체가 전달 됩니다 합니다 NameValueCollection 의 매개 변수는 Initialize 메서드.The connection string for the OleDbConnection object is passed in the NameValueCollection parameter of the Initialize method. 이 경우 연결 문자열은 Web.config 파일에서 공급자 관련 섹션에서 제공 됩니다.In this case, the connection string is provided by the provider-specific section in the Web.config file. 이때 accessSiteMapConnectionString 사이트 맵 데이터를 호스팅하는 Microsoft Access 데이터베이스에 연결 문자열을 포함 합니다.Here, accessSiteMapConnectionString contains a connection string to a Microsoft Access database that hosts the site map data.

<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 클래스입니다.This code example is part of a larger example provided for the SiteMapProvider class.

   // 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 이렇게 하려면 개체입니다.The Initialize method does not actually build a site map, it only prepares the state of the SiteMapProvider object to do so. 기본 구현은 초기화는 SecurityTrimmingEnabled 사이트 탐색 구성에서 사이트 맵 공급자에 대 한 속성입니다.The default implementation initializes the SecurityTrimmingEnabled property for the site map provider from the site navigation configuration.

SiteMapProvider에서 파생되는 클래스는 Initialize 메서드를 재정의하여 영구 스토리지에서 사이트 맵 데이터를 로드하는 데 필요한 모든 상태와 리소스를 초기화할 수 있습니다.Classes that derive from the SiteMapProvider can override the Initialize method to initialize any state and resources that are required to load site map data from persistent storage. 예를 들어 파생된 클래스는 파일을 사용 하는 사이트 맵 데이터를 저장 하는 경우 모든 파일 초기화를 수행할 수에 Initialize 메서드.For example, if your derived class is using files to store site map data, any file initialization can be performed in the Initialize method. 파생된 클래스에서 다른 유형의 데이터 저장소, 관계형 데이터베이스와 같은 데이터베이스 연결을 초기화할 수행할 수 있습니다.If the derived class uses some other type of data store, such as a relational database, initializing a database connection might be performed.

ASP.NET 구성 시스템에서 파일 이름 또는 연결 문자열 등의 추가 특성은 읽고 전달할 합니다 Initialize 메서드를 사용 하 여 해당 NameValueCollection 매개 변수입니다.Additional attributes, such as file names or connection strings, are read by the ASP.NET configuration system and passed to the Initialize method with its NameValueCollection parameter.

상속자 참고

재정의 하는 경우는 Initialize(String, NameValueCollection) 파생된 클래스에서 메서드를 먼저 호출 해야는 Initialize(String, NameValueCollection) 직접 초기화를 수행 하기 전에 기본 클래스의 메서드입니다.When overriding the Initialize(String, NameValueCollection) method in a derived class, be sure to first call the Initialize(String, NameValueCollection) method for the base class before performing your own initializations.

적용 대상

추가 정보