SiteMapProvider.Initialize(String, NameValueCollection) Methode

Definition

Initialisiert die SiteMapProvider-Implementierung einschließlich aller Ressourcen, die benötigt werden, um Siteübersichtsdaten aus dem permanenten Speicher zu laden.

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)

Parameter

name
String

Der Name des zu initialisierenden Anbieters.

attributes
NameValueCollection

Eine NameValueCollection, die zusätzliche Attribute enthalten kann, um das Initialisieren des Anbieters zu unterstützen. Diese Attribute werden aus der Konfiguration der Siteübersichtsanbieter in der Datei Web.config gelesen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die Initialize Methode zum Vorbereiten einer Microsoft Access-Datenbankverbindung außer Kraft setzen.

Die Verbindungszeichenfolge für das OleDbConnection Objekt wird im NameValueCollection Parameter der Initialize Methode übergeben. In diesem Fall wird die Verbindungszeichenfolge vom anbieterspezifischen Abschnitt in der Web.config-Datei bereitgestellt. accessSiteMapConnectionString Hier enthält eine Verbindungszeichenfolge mit einer Microsoft Access-Datenbank, die die Websitezuordnungsdaten hosten.

<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>  

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SiteMapProvider Klasse bereitgestellt wird.

   // 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

Hinweise

Die Initialize Methode erstellt keine Websitezuordnung, es bereitet nur den Status des SiteMapProvider Objekts darauf vor. Die Standardimplementierung initialisiert die SecurityTrimmingEnabled Eigenschaft für den Websitezuordnungsanbieter aus der Websitenavigationskonfiguration.

Klassen, die von der SiteMapProvider Methode abgeleitet werden, können die Initialize Methode außer Kraft setzen, um alle Status und Ressourcen zu initialisieren, die zum Laden von Websitezuordnungsdaten aus dem beständigen Speicher erforderlich sind. Wenn Ihre abgeleitete Klasse beispielsweise Dateien zum Speichern von Websitezuordnungsdaten verwendet, kann jede Dateiinitialisierung in der Initialize Methode ausgeführt werden. Wenn die abgeleitete Klasse einen anderen Datentyp des Datenspeichers verwendet, z. B. eine relationale Datenbank, kann die Initialisierung einer Datenbankverbindung ausgeführt werden.

Zusätzliche Attribute, z. B. Dateinamen oder Verbindungszeichenfolgen, werden vom ASP.NET Konfigurationssystem gelesen und mit seinem NameValueCollection Parameter an die Initialize Methode übergeben.

Hinweise für Vererber

Wenn Sie die Methode in einer abgeleiteten Klasse außer Kraft setzen, müssen Sie zuerst die Initialize(String, NameValueCollection) Methode für die Initialize(String, NameValueCollection) Basisklasse aufrufen, bevor Sie ihre eigenen Initialisierungen ausführen.

Gilt für

Siehe auch