Lo bueno de esta funcionalidad es que puedes guardar información a tu gusto y a cualquier nivel (SPWeb, SPSite, SPFarm, WebApp).
Un ejemplo de uso sería el tener que guardar algún tipo de configuración específica de un site, para ello guardaríamos dichos datos a nivel de SPWeb.
Otra de las ventajas es que puedes guardar cualquier objeto y el mismo AppSettingManager lo serializa y al recuperarlo lo deserializa, con lo que podemos guardar cualquier tipo de objeto y luego se lo especificaremos al recuperarlo.
Para utilizar la AppSettingManager deberemos usar las dlls:
- Microsoft.Practices.ServiceLocation
- Microsoft.Practices.SharePoint.Common.Configuration
- Microsoft.Practices.SharePoint.Common.ServiceLocation
Y aquí un ejemplo de cómo guardar datos a nivel de siteCollection:
IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
IConfigManager configManager = serviceLocator.GetInstance();
// Retrieve a site collection by URL.
using(SPSite site = new SPSite(http://intranet.contoso.com/sites/testzone))
{
configManager.SetWeb(site.RootWeb);
IPropertyBag bag = configManager.GetPropertyBag(ConfigLevel.CurrentSPSite);
configManager.SetInPropertyBag("testKey", "Test Value", bag);
}