A associação de dados personalizados com extensões de ferramentas do SharePoint

Você pode adicionar dados personalizados para determinados objetos nas extensões de ferramentas do SharePoint. Isso é útil quando você tiver dados em uma parte da sua extensão que você deseja acessar mais tarde a partir de outro código na sua extensão. Em vez de implementar uma forma personalizada para armazenar e acessar dados, você pode associar dados um objeto na sua extensão e recuperar os dados do mesmo objeto posteriormente.

Adicionando dados personalizados a objetos também é útil quando você deseja preservar dados relevantes a um item específico na Visual Studio. Extensões de ferramentas do SharePoint estão carregadas depois de Visual Studio, portanto, sua extensão pode trabalhar com vários itens diferentes (como, por exemplo, projetos, itens, de projeto ou Server Explorer nós) em qualquer momento. Se você tiver dados personalizados que são relevantes apenas para um item específico, você pode adicionar os dados para o objeto que representa o item.

Quando você adiciona dados personalizados para objetos em extensões de ferramentas do SharePoint, os dados não persistem. Os dados estão disponíveis somente durante o tempo de vida do objeto. Depois que o objeto é recuperado pela coleta de lixo, os dados serão perdidos.

Extensões do sistema de projeto do SharePoint, você também pode salvar os dados de seqüência persistir depois que uma extensão é descarregada. Para obter mais informações, consulte Salvar dados em extensões do sistema de projeto do SharePoint.

Objetos que podem conter dados personalizados

Você pode adicionar dados personalizados para qualquer objeto no modelo de objeto SharePoint ferramentas que implementa o IAnnotatedObject interface. Essa interface define apenas uma propriedade, Annotations, que é uma coleção de objetos de dados personalizados. Os seguintes tipos de implementam IAnnotatedObject:

Adicionar e recuperar dados personalizados

Para adicionar dados personalizados a um objeto em uma extensão de ferramentas do SharePoint, obtenha o Annotations a propriedade do objeto que você deseja adicionar os dados e, em seguida, use o IAnnotationDictionary.Add() método para adicionar os dados para o objeto.

Para recuperar dados personalizados de um objeto em uma extensão de ferramentas do SharePoint, obtenha o Annotations a propriedade do objeto e, em seguida, use um dos seguintes métodos:

  • IAnnotationDictionary.TryGetValue(). Esse método retorna true se o objeto de dados existir, ou false se não existir. Você pode usar esse método para recuperar instâncias de tipos de valor ou referência.

  • IAnnotationDictionary.GetValue(). Esse método retorna os dados de objeto se ele existir, ou null se não existir. Você pode usar esse método somente para recuperar instâncias de tipos de referência.

O exemplo de código a seguir determina se um determinado objeto de dados já está associado um item de projeto. Se o objeto de dados já não está associado ao item de projeto, o código adiciona o objeto para o Annotations a propriedade do item de projeto. Para ver este exemplo no contexto de um exemplo maior, consulte Como: Adicionar uma propriedade para um tipo de Item de projeto do SharePoint personalizado.

Private Sub ProjectItemPropertiesRequested(ByVal Sender As Object,
    ByVal e As SharePointProjectItemPropertiesRequestedEventArgs)
    Dim propertyObject As CustomProperties = Nothing

    ' If the properties object already exists, get it from the project item's annotations.
    If False = e.ProjectItem.Annotations.TryGetValue(propertyObject) Then
        ' Otherwise, create a new properties object and add it to the annotations.
        propertyObject = New CustomProperties(e.ProjectItem)
        e.ProjectItem.Annotations.Add(propertyObject)
    End If
    e.PropertySources.Add(propertyObject)
End Sub
void projectItemTypeDefinition_ProjectItemPropertiesRequested(object sender, 
    SharePointProjectItemPropertiesRequestedEventArgs e)
{
    CustomProperties property;

    // If the properties object already exists, get it from the project item's annotations.
    if (!e.ProjectItem.Annotations.TryGetValue(out property))
    {
        // Otherwise, create a new properties object and add it to the annotations.
        property = new CustomProperties(e.ProjectItem);
        e.ProjectItem.Annotations.Add(property);
    }

    e.PropertySources.Add(property);
}

Consulte também

Tarefas

Demonstra Passo a passo: A criação de um Item de projeto de ação personalizada com um modelo de Item, parte 1

Demonstra Passo a passo: Estendendo o Server Explorer para exibir Web Parts

Outros recursos

Conceitos de programação e recursos para extensões de ferramentas do SharePoint

Como: Adicionar uma propriedade para projetos do SharePoint

Como: Adicionar uma propriedade para um tipo de Item de projeto do SharePoint personalizado