SiteMapProvider.Initialize(String, NameValueCollection) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi SiteMapProvider implementasi, termasuk sumber daya apa pun yang diperlukan untuk memuat data peta situs dari penyimpanan persisten.
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
Yang NameValueCollection dapat berisi atribut tambahan untuk membantu menginisialisasi penyedia. Atribut ini dibaca dari konfigurasi penyedia peta situs dalam file Web.config.
Contoh
Contoh kode berikut menunjukkan cara mengambil alih Initialize metode untuk menyiapkan koneksi database Microsoft Access.
String koneksi untuk OleDbConnection objek diteruskan dalam NameValueCollection parameter Initialize metode . Dalam hal ini, string koneksi disediakan oleh bagian khusus penyedia dalam file Web.config. Di sini, accessSiteMapConnectionString berisi string koneksi ke database Microsoft Access yang menghosting data peta situs.
<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>
Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk SiteMapProvider kelas .
// 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
Keterangan
Metode ini Initialize tidak benar-benar membangun peta situs, hanya menyiapkan status SiteMapProvider objek untuk melakukannya. Implementasi default menginisialisasi SecurityTrimmingEnabled properti untuk penyedia peta situs dari konfigurasi navigasi situs.
Kelas yang berasal dari SiteMapProvider dapat mengambil alih Initialize metode untuk menginisialisasi status dan sumber daya apa pun yang diperlukan untuk memuat data peta situs dari penyimpanan persisten. Misalnya, jika kelas turunan Anda menggunakan file untuk menyimpan data peta situs, inisialisasi file apa pun dapat dilakukan dalam metode .Initialize Jika kelas turunan menggunakan beberapa jenis penyimpanan data lainnya, seperti database relasional, menginisialisasi koneksi database mungkin dilakukan.
Atribut tambahan, seperti nama file atau string koneksi, dibaca oleh sistem konfigurasi ASP.NET dan diteruskan ke Initialize metode dengan parameternya NameValueCollection .
Catatan Bagi Inheritor
Saat mengambil alih Initialize(String, NameValueCollection) metode dalam kelas turunan, pastikan untuk terlebih dahulu memanggil Initialize(String, NameValueCollection) metode untuk kelas dasar sebelum melakukan inisialisasi Anda sendiri.