Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

SharePoint Property Bag

4.67/5 (2 votes)
7 Nov 2009CPOL1 min read 52.6K  
Property bag is a feature available in Windows SharePoint Services 3.0. It's nothing but a hash table of Key-Value pairs.

Property bag is a feature available in Windows SharePoint Services 3.0. It's nothing but a hash table of Key-Value pairs. It allows to add properties to objects in a SharePoint site.

image

Why to Use SharePoint Property Bag

The Property Bag hash table for a site can store any metadata as Key-Value pairs such as connection strings, server names, file paths, and other settings needed by your SharePoint application. Most of the time, we will store the above settings in configuration file, which is common to the entire web application. If there is any setting specific each and individual sites in the web application, then we have to maintain that many entries in the config file. To overcome the above scenario, we can use the SharePoint Property Bag.

There is no specific out of box user interface available to set or to read the property bag settings. In WSS 3.0, property bag values have to set/get using the object model. There is an option available in SharePoint designer to set/get the property bag settings. Go to Site -> Site Settings. click on the Parameters tab.  On this tab, you will be able to manipulate all of your custom property bag values.

image

image

How to Use

C#
SPSecurity.RunWithElevatedPrivileges(delegate()
        {
        try
        {
            using (SPSite RootSite = new SPSite(URL))
            {
                using (SPWeb SiteCollection = RootSite.OpenWeb())
                {                    
                    try
                    {
                        SiteCollection.AllowUnsafeUpdates = true;
                       // Get connection string from Property bag
                        if (SiteCollection.AllProperties.ContainsKey("ConnectionString"))
                        {
                            ConnectionString = 
                               SiteCollection.AllProperties["ConnectionString"].ToString();
                        }                        
                        // Set siteID in the Property bag
                        SiteCollection.Properties["siteID"] = siteID;
                        SiteCollection.Properties.Update();
                        SiteCollection.AllowUnsafeUpdates = false;                        
                    }
                    catch (Exception ex) 
                    { 
                      //Handle Exception  
                    }           
                }
            }
        }
        catch(Exception ex)        
        {            
        }
        });    

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)