Nesne modeli açısından baktığımızda SPFeatureDefinition ve SPFeature adında iki sınıf bizi karşılıyor olacaktır. SPFeatureDefinition bir Feature MOSS'a yüklendikten sonra bu Feature'a erişmek için kullanılabilecek bir sınıftır. SPFeatureDefinition üzerinden erişilen Feature'lar abstract class'lara benzetilebilir, nasıl bir abstract class direkt kullanılamayıp ondan kalıtılan bir sınıf üzerinden kullanılabiliyorsa Farm düzeyindeki SPFeatureDefinition sınıfı ile erişilebilien Feature'larda direkt kullanılamaz, kullanılması için herhangi bir sitede aktif duruma getirilmesi gerekmektedir. Farm düzeyindeki Feature'ın aktif edilmiş haline de SPFeature sınıfı aracılığı erişilebilir.
MOSS'da her nesnenin bir ID'si vardır. GUID tipinde olan bu ID'ler nesnelere erişim için önemli bir yere sahiptir ve nesne modelinde de pek çok yerde kullanılması gerekir. Kullanılması gereken yerlerden biri de Feature'lardır ve bu ID'lere de özellik olarak nesne örnekleri üzerinden ulaşılabilir. Aşağıdaki kodlarda bir sitede kullanılan Feature'ları listeleyecek olan küçük bir programcık yer almaktadır. Kodlardan da anlaşılacağı üzere bu kodlar bir Console uygulamasıdır ve kodların çalışması için bir önceki makalede belirtmiş olduğumuz path'de yer alan Microsoft.SharePoint.dll isimli dll'in refere edilmiş ve Microsoft.SharePoint isimli namespace'in eklenmiş olması gerekmektedir.
SPSite site = new SPSite("http://litwareportal"); SPFeatureCollection siteFeatures = site.Features; foreach (SPFeature feature in siteFeatures) { Console.WriteLine(feature.Definition.DisplayName); Console.WriteLine(feature.Definition.Id); SPFeaturePropertyCollection featureoOzellikleri = feature.Properties; foreach (SPFeatureProperty property in featureoOzellikleri) { Console.WriteLine("\tProp name: " + property.Name); Console.WriteLine("\tProp value:" + property.Value); } } |
Kodlardan da görüleceği üzere bir SiteCollection düzeyinde kullanılan Feature'ları elde etmek için SPSite tipindeki nesne örneğinin Fetaures koleksiyonu kullanılmaktadır, bahsedilen koleksiyon geriye SPFetaureCollection tipinden bir koleksiyon döndürüyor ve foreach döngüsü ile de bu koleksiyon içerisinde geziliyor. Bir Feature'ın Definition'ınına yani Farm düzeyindeki tanımlamasına Definition özelliği aracılığı ile erişilebilir. Yukarıdaki kodlarda da Definition ID'sini yani Fetaure MOSS'a yüklenirken belirtilen GUID'i elde edebiliyoruz ve DisplayName özelliği ile de görüntülenen ismi ekrana yazdırılıyor. İkinci foreach ile de Fetaure'ın Property'leri üzerinde gezilip propetylerin adı ve taşıdıkları değerler ekrana yazdırılıyor. Program çalıştırılınca aşağıdaki gibi bir görünüm elde ediliyor olacaktır.
Hiç yorum yok:
Yorum Gönder