IBackupRestore.AddBackupObjects - Méthode

Ajoute l'objet de IBackupRestore et de ses objets de IBackupRestore des enfants à l'objet de sauvegarde spécifié.

Espace de noms :  Microsoft.SharePoint.Administration.Backup
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Sub AddBackupObjects ( _
    parent As SPBackupRestoreObject _
)
'Utilisation
Dim instance As IBackupRestore
Dim parent As SPBackupRestoreObject

instance.AddBackupObjects(parent)
void AddBackupObjects(
    SPBackupRestoreObject parent
)

Paramètres

Remarques

Une implémentation de AddBackupObjects doit effectuer les opérations suivantes :

  • Assurez-vous qu'un objet SPBackupRestoreObject qui représente votre composant contenu personnalisé est créé et ajouté à l'arborescence d'objets SPBackupRestoreObject qui vont être traitées par la sauvegarde ou une restauration.

  • Assurez-vous qu'un objet SPBackupRestoreObject pour chaque enfant contenu composant qui implémente IBackupRestore est ajouté à l'arborescence.

  • Spécifiez un nom de type et une description pour le composant qui peut être utilisé par l'interface utilisateur de l'application d'Administration centrale , ou stsadm.exe, ou de l'interface utilisateur d'une applet de commande SharePoint Management Shell , ou d'autres applications de sauvegarde/restauration.

L'exemple ci-dessous illustre une implémentation simple de la méthode AddBackupObjects() . Autres choses que vous devez ou à ajouter à votre mise en œuvre sont les suivantes :

  • Pour le deuxième paramètre des appels à la méthode SetParameter() , envisagez d'appeler une méthode qui utilise des informations de culture actuelles pour retourner une chaîne localisée.

  • Si votre enfant objets doivent parfois être sélectionnables pour la sauvegarde, de restauration ou restauration-à-un-nouveau-nom, mais parfois ne pas ; envisagez d'utiliser l'itération sur les objets enfants pour définir les propriétés CanSelectForBackup, CanSelectForRestoreou CanRenameOnRestore pour chaque enfant. Dans l'exemple suivant, childIBR est un objet d'une classe enfant et SupportedWebApp est une propriété qui retourne une référence à la SPWebApplication qui est pris en charge par l'objet. Dans la mesure où l'Application Web d'Administration ne peuvent pas être sélectionnée pour la sauvegarde ou la restauration séparément de son parent, ni doit l'objet de contenu pris en charge.

    if (childIBR.SupportedWebApp is SPAdministrationWebApplication)
    {
        childIBR.CanSelectForBackup == false;
        childIBR.CanSelectForRestore == false;
    }
    
    If TypeOf childIBR.SupportedWebApp Is SPAdministrationWebApplication Then
        childIBR.CanSelectForBackup = False
        childIBR.CanSelectForRestore = False
    End If
    
  • Si un objet de votre classe de contenu peut parfois être le composant de niveau supérieur (autres que la batterie de serveurs) dans l'arborescence de composants qui procède au traitement de l'opération de sauvegarde ou de restauration ; mais d'autres fois l'enfant d'un composant personnalisé (non agricoles) plus élevée, puis la méthode AddBackupObjects doit vérifier si l'objet a déjà été ajouté à l'arborescence par un appel à la AddBackupObjects de l'objet parent. Pour ce faire, encapsuler l'ensemble de votre logique de mise en œuvre (après vérification si le parent est une référence Null (Rien dans Visual Basic)) dans une structure conditionnelle, comme illustrée dans l'exemple suivant.

    if (parent == null)
    {
        throw new ArgumentNullException("parent");
    }
    if (parent.FindObject(this.Id) == null)
    {
        // TODO: Insert here all of your implementation logic
        // after the check of the parent's validity. 
    }
    
    If parent Is Nothing Then
        Throw New ArgumentNullException("parent")
    End If
    If parent.FindObject(Me.Id) Is Nothing Then
        ' TODO: Insert here all of your implementation logic
        ' after the check of the parent's validity. 
    End If
    

Exemples

Voici un exemple d'implémentation de la méthode AddBackupObjects() . Cet exemple suppose que votre classe de contenu a un ChildContentCollection des objets de IBackupRestore enfants. Si votre classe possède plus d'un type de composant enfant, vous pouvez avoir des collections distinctes pour chaque type et itérer dans chaque collection.

public void AddBackupObjects(SPBackupRestoreObject parent)
{
    if (parent == null)
    {
        throw new ArgumentNullException("parent");
    }

    SPBackupRestoreObject self = parent.AddChild(this);
    self.Information.SetParameter(SPBackupRestoreObject.SPTypeName, this.GetType());
    self.Information.SetParameter(SPBackupRestoreObject.SPDescription, "Description of custom content component");

....foreach (ChildContent child in ChildContentCollection)
    {
        IBackupRestore childIBR = child as IBackupRestore;
        childIBR.AddBackupObjects(self);
    }
}
Public Sub AddBackupObjects(ByVal parent As SPBackupRestoreObject)
    If parent Is Nothing Then
        Throw New ArgumentNullException("parent")
    End If

    Dim self As SPBackupRestoreObject = parent.AddChild(Me)
    self.Information.SetParameter(SPBackupRestoreObject.SPTypeName, Me.GetType())
    self.Information.SetParameter(SPBackupRestoreObject.SPDescription, "Description of custom content component")

For Each child As ChildContent In ChildContentCollection
        Dim childIBR As IBackupRestore = TryCast(child, IBackupRestore)
        childIBR.AddBackupObjects(self)
Next child
End Sub

Voir aussi

Référence

IBackupRestore interface

IBackupRestore - Membres

Microsoft.SharePoint.Administration.Backup - Espace de noms