Export (0) Print
Expand All
1 out of 1 rated this helpful - Rate this topic

SPPersistedObject Class

Provides the methods for an object to automatically serialize its state, persist that state in a permanent store, retrieve it at a later time, and deserialize it back into an in-memory object.

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.Administration.SPPersistedObject
      

Namespace:  Microsoft.SharePoint.Administration
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online
[SubsetCallableTypeAttribute(ForcePolymorphicForReturnTypes = true)]
[GuidAttribute("3B60B328-F4D6-4902-BEC6-E904179FA246")]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPPersistedObject : SPAutoSerializingObject, 
	ICloneable

The SPPersistedObject class provides a base class for all administration objects. It serializes all fields marked with the Persisted attribute to XML and writes the XML blob to the configuration database. The SPPersistedObject class contains code to serialize all its members that are base types, other persisted objects, and collections of persisted objects. Configuration data that is stored in persisted objects is automatically made available to every process on every server in the farm.

When you create a custom persisted object you must specify the default constructor for serialization.

To return an existing persisted object, use the GetObject method of the SPFarm class, or the GetChild method of the SPPersistedObject class.

The following example illustrates a custom class that inherits from the SPPersistedObject class where the Peristed attribute is used to specify fields for serialization.

[GuidAttribute("3B60B328-F4D6-4902-BEC6-E904179FA246")]
public class MyObject : SPPersistedObject
{
   [Persisted]
   private string location;

   [Persisted]
   private string url;

   /*The default constructor must be specified for serialization.*/
   public MyObject()
   {
   }
   public MyObject(string name, SPPersistedObject parent)
      : base(name, parent)
   {
      ;
   }

   public override string DisplayName
   {
      get
      {
         return this.url;
      }
   }

   public string Url
   {
      get { return this.url; }
      set 
      {
         if (this.url == value)
         {
            return;
          }

          this.url = value;
      }
   }

   public string Location
   {
      get { return this.location; }
      set { this.location = value; }
   }
}

After you create a MyObject persisted object as in the example, you can return it by using SPFarm.Local.GetObject(GUID).

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.Administration.SPPersistedObject
      Microsoft.SharePoint.Administration.Backup.SPBackupRestoreConfigurationSettings
      Microsoft.SharePoint.Administration.Backup.SPVssDiscoveryHelper
      Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager
      Microsoft.SharePoint.Administration.Claims.SPSecurityTokenServiceManager
      Microsoft.SharePoint.Administration.Claims.SPTrustedProviderBase
      Microsoft.SharePoint.Administration.SPAlternateUrlCollection
      Microsoft.SharePoint.Administration.SPDeveloperDashboardSettings
      Microsoft.SharePoint.Administration.SPDocumentConverter
      Microsoft.SharePoint.Administration.SPEncryptedString
      Microsoft.SharePoint.Administration.SPFarmConfigurationWizardSettings
      Microsoft.SharePoint.Administration.SPFeatureDefinition
      Microsoft.SharePoint.Administration.SPHealthReportStore
      Microsoft.SharePoint.Administration.SPIisWebServiceApplicationPool
      Microsoft.SharePoint.Administration.SPIisWebServiceEndpoint
      Microsoft.SharePoint.Administration.SPJobDefinition
      Microsoft.SharePoint.Administration.SPManagedAccount
      Microsoft.SharePoint.Administration.SPMigratableSiteCollection
      Microsoft.SharePoint.Administration.SPPersistedCustomWebTemplate
      Microsoft.SharePoint.Administration.SPPersistedFile
      Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
      Microsoft.SharePoint.Administration.SPProcessIdentity
      Microsoft.SharePoint.Administration.SPResourceMeasure
      Microsoft.SharePoint.Administration.SPSolution
      Microsoft.SharePoint.Administration.SPSolutionLanguagePack
      Microsoft.SharePoint.Administration.SPUsageDefinition
      Microsoft.SharePoint.Administration.SPUsageIdentityTable
      Microsoft.SharePoint.Administration.SPUsageManager
      Microsoft.SharePoint.Administration.SPUsageReceiverDefinition
      Microsoft.SharePoint.Administration.SPUsageSettings
      Microsoft.SharePoint.Administration.SPUserCodeProvider
      Microsoft.SharePoint.SPAlertTemplate
      Microsoft.SharePoint.Upgrade.SPUpgradeSession
      Microsoft.SharePoint.Utilities.SPHttpThrottleSettings
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.