IBackupRestore.AddBackupObjects method
Adiciona o objeto IBackupRestore e seus objetos de IBackupRestore filho para o objeto de backup especificado.
Namespace: Microsoft.SharePoint.Administration.Backup
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Sub AddBackupObjects ( _
parent As SPBackupRestoreObject _
)
'Uso
Dim instance As IBackupRestore
Dim parent As SPBackupRestoreObject
instance.AddBackupObjects(parent)
void AddBackupObjects(
SPBackupRestoreObject parent
)
Parâmetros
parent
Type: Microsoft.SharePoint.Administration.Backup.SPBackupRestoreObjectO objeto de backup para o qual os objetos IBackupRestore são adicionados.
Comentários
Uma implementação de AddBackupObjects precisa realizar as seguintes ações:
Certifique-se de que um objeto SPBackupRestoreObject que representa o componente de conteúdo personalizado é criado e adicionado à árvore de objetos SPBackupRestoreObject que serão processados pelo backup ou restaurar a operação.
Certifique-se de que um objeto de SPBackupRestoreObject para cada componente que implementa IBackupRestore é adicionada à árvore de conteúdo filho.
Especifique um nome de tipo e uma descrição para o componente que pode ser usado com a interface do usuário do aplicativo Administração Central ou stsadm.exe ou a interface do usuário de um cmdlet SharePoint Management Shell ou algum outro aplicativo de backup e restauração.
O exemplo a seguir mostra uma implementação simples do método AddBackupObjects() . Outras coisas que você possa precisar ou queira adicionar à sua implementação incluem o seguinte:
O segundo parâmetro de chamadas para o método SetParameter() , considere a possibilidade de chamar um método que usa informações da cultura atual para retornar uma cadeia de caracteres localizada.
Se os objetos filho, às vezes, devem ser selecionáveis de backup, restauração ou restauração-com-um-novo-name, mas outras vezes não ser; Considere o uso de iteração sobre os objetos filho para definir as propriedades CanSelectForBackup, CanSelectForRestoreou CanRenameOnRestore para cada filho. No exemplo a seguir, childIBR é um objeto de uma classe filha e SupportedWebApp é uma propriedade que retorna uma referência a SPWebApplication que é suportado pelo objeto. Uma vez que o aplicativo Web da administração não podem ser selecionado para backup ou restauração separadamente de seu pai, nem deve o objeto de conteúdo de suporte.
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
Se um objeto de classe de conteúdo, às vezes, pode ser o componente superior (diferente do farm) na árvore de componentes que processará a operação de backup ou restauração; mas é em outros horários filho de algum componente personalizado (não farm) mais alta, e em seguida, o método AddBackupObjects deve verificar se o objeto já foi adicionado à árvore por uma chamada a AddBackupObjects do objeto pai. Para fazer isso, encapsula toda a lógica de implementação (depois de verificar se o pai for a null reference (Nothing in Visual Basic)) em uma estrutura condicional como mostrada no exemplo a seguir.
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
Examples
A seguir está um exemplo de uma implementação do método AddBackupObjects() . Este exemplo assume que a classe de conteúdo tem uma ChildContentCollection de objetos de IBackupRestore filho. Se sua classe tem mais de um tipo de componente filho, você pode ter coleções separadas para cada tipo e iterar em cada coleção.
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