SiteMapProvider.Initialize(String, NameValueCollection) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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.