27/07/2007

propriétés persistante sur les classes SPWeb et SPAlert

Les classes SPWeb et SPAlert disposent d’une propriété « (get) Properties » de type SPPropertyBag qui permet d’attacher aux objets une collection persistante de type Clef – Valeur. Cette collection de propriétés est gérée par MOSS comme persistante c'est donc très pratique si vous souhaitez attacher des attributs supplémentaires sur ce type d’objet.
Voici un exemple de mise en œuvre sur la classe SPWEB (je n’ai pas fait l’essai sur la classe SPAlert).

Les principales propriétés et méthodes de la classe SPPropertyBag (d’ailleurs presque toutes héritées de la classe StringDictionary) sont :

Int SPPropertyBag.Count
Le nombre de propriétés de la collection.
Void SPPropertyBag.Add(string key,string value)
Ajoute un couple de type clef valeur. La valeur peut être null ; mais pas la clef bien sur.
Bool SPPropertyBag.ContainsKey(string key)
Recherche la présence d’une clef
Void SPPropertyBag.Remove(string key)
Supprime une clef et sa valeur
Void SPPropertyBag.Update()
Une des rares méthodes redéfinit localement et pour cause c’est elle qui prend en charge la persistance.

Ajouter une propriété
using (SPWeb web = mySite.OpenWeb(«SiteDirectory/site1» ))
{
web.Properties.Add(«Key1», «Value1») ;
web.Properties.Update() ;
}

Consulter une propriété
using (SPWeb web = mySite.OpenWeb(«SiteDirectory/site1» ))
{
String value = null;
If (web.Properties.ContainsKey(«Key1») == true)
value = web.Properties[«Key1»] ;
}

Supprimer une propriété
using (SPWeb web = mySite.OpenWeb(«SiteDirectory/site1» ))
{
web.Properties.Remove(«Key1»);
web.Properties.Update() ;
}

Aucun commentaire: