SiteMapProvider.Initialize(String, NameValueCollection) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
SiteMapProvider Kalıcı depolama alanından site haritası verilerini yüklemek için gereken tüm kaynaklar dahil olmak üzere uygulamayı başlatır.
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)
Parametreler
- attributes
- NameValueCollection
NameValueCollection Sağlayıcıyı başlatmaya yardımcı olmak için ek öznitelikler içerebilen bir. Bu öznitelikler, Web.config dosyasındaki site haritası sağlayıcısı yapılandırmasından okunur.
Örnekler
Aşağıdaki kod örneği, Bir Microsoft Access veritabanı bağlantısı hazırlamak için yönteminin nasıl geçersiz kılınduğunu Initialize gösterir.
nesnesinin OleDbConnection bağlantı dizesi, yönteminin NameValueCollection parametresinde Initialize geçirilir. Bu durumda, bağlantı dizesi Web.config dosyasındaki sağlayıcıya özgü bölüm tarafından sağlanır. Burada, accessSiteMapConnectionString
site haritası verilerini barındıran bir Microsoft Access veritabanına bağlantı dizesi içerir.
<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>
Bu kod örneği, sınıfı için SiteMapProvider sağlanan daha büyük bir örneğin parçasıdır.
// 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
Açıklamalar
Initialize yöntemi aslında bir site haritası oluşturmaz, bunu yapmak için yalnızca nesnenin SiteMapProvider durumunu hazırlar. Varsayılan uygulama, site gezinti yapılandırmasından site haritası sağlayıcısının özelliğini başlatır SecurityTrimmingEnabled .
'den SiteMapProvider türetilen sınıflar, kalıcı depolamadan site haritası verilerini yüklemek için gereken tüm durum ve kaynakları başlatmak için yöntemini geçersiz kılabilir Initialize . Örneğin, türetilmiş sınıfınız site haritası verilerini depolamak için dosyaları kullanıyorsa, yönteminde Initialize herhangi bir dosya başlatma gerçekleştirilebilir. Türetilmiş sınıf ilişkisel veritabanı gibi başka bir veri deposu türü kullanıyorsa, veritabanı bağlantısını başlatma işlemi gerçekleştirilebilir.
Dosya adları veya bağlantı dizeleri gibi ek öznitelikler, ASP.NET yapılandırma sistemi tarafından okunur ve parametresiyle NameValueCollection yöntemine Initialize geçirilir.
Devralanlara Notlar
Türetilmiş bir sınıfta yöntemini geçersiz kıldığınızda Initialize(String, NameValueCollection) , kendi başlatmalarınızı gerçekleştirmeden önce temel sınıf için yöntemini çağırdığınızdan Initialize(String, NameValueCollection) emin olun.