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

Комментарии

Метод на самом деле не создает карту узла, он подготавливает для этого только состояние SiteMapProvider объекта. InitializeThe 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.

Применяется к

Дополнительно