SiteMapProvider.Initialize(String, NameValueCollection) Metodo

Definizione

Inizializza l'implementazione SiteMapProvider, incluse le risorse necessarie per caricare i dati della mappa del sito dall'archiviazione persistente.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)

Parametri

name
String

Elemento Name del provider da inizializzare.The Name of the provider to initialize.

attributes
NameValueCollection

Elemento NameValueCollection in grado di contenere attributi aggiuntivi per consentire l'inizializzazione del provider.A NameValueCollection that can contain additional attributes to help initialize the provider. Tali attributi vengono letti dalla configurazione del provider della mappa del sito al file Web.config.These attributes are read from the site map provider configuration in the Web.config file.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato Initialize come eseguire l'override del metodo per preparare una connessione al database di Microsoft Access.The following code example demonstrates how to override the Initialize method to prepare a Microsoft Access database connection.

La stringa di connessione per OleDbConnection l'oggetto viene passata NameValueCollection nel parametro del Initialize metodo.The connection string for the OleDbConnection object is passed in the NameValueCollection parameter of the Initialize method. In questo caso, la stringa di connessione viene fornita dalla sezione specifica del provider nel file Web. config.In this case, the connection string is provided by the provider-specific section in the Web.config file. Qui, accessSiteMapConnectionString contiene una stringa di connessione a un database di Microsoft Access che ospita i dati della mappa del sito.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>  

Questo esempio di codice fa parte di un esempio più ampio fornito SiteMapProvider per la classe.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

Commenti

Il Initialize metodo non compila effettivamente una mappa SiteMapProvider del sito, prepara solo lo stato dell'oggetto a tale scopo.The Initialize method does not actually build a site map, it only prepares the state of the SiteMapProvider object to do so. L'implementazione predefinita inizializza la SecurityTrimmingEnabled proprietà per il provider della mappa del sito dalla configurazione di navigazione del sito.The default implementation initializes the SecurityTrimmingEnabled property for the site map provider from the site navigation configuration.

Le classi che derivano SiteMapProvider da possono eseguire Initialize l'override del metodo per inizializzare lo stato e le risorse necessarie per caricare i dati della mappa del sito dall'archivio permanente.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. Se, ad esempio, la classe derivata utilizza file per archiviare i dati della mappa del sito, è possibile eseguire qualsiasi inizializzazione di file nel Initialize metodo.For example, if your derived class is using files to store site map data, any file initialization can be performed in the Initialize method. Se la classe derivata utilizza un altro tipo di archivio dati, ad esempio un database relazionale, potrebbe essere eseguita l'inizializzazione di una connessione al database.If the derived class uses some other type of data store, such as a relational database, initializing a database connection might be performed.

Gli attributi aggiuntivi, ad esempio i nomi file o le stringhe di connessione, vengono letti dal sistema di configurazione ASP.NET Initialize e passati al NameValueCollection metodo con il relativo parametro.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.

Note per gli eredi

Quando si esegue l' Initialize(String, NameValueCollection) override del metodo in una classe derivata, assicurarsi di chiamare prima Initialize(String, NameValueCollection) il metodo per la classe base prima di eseguire le proprie inizializzazioni.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.

Si applica a

Vedi anche