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 os dados de um objeto na sua extensão e recuperar os dados do mesmo objeto mais tarde.
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 são carregadas apenas uma vez no Visual Studio, portanto, sua extensão pode funcionar com vários itens diferentes (como, por exemplo, projetos, itens, de projeto ou Server Explorer nós) a 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 esse item.
Quando você adiciona dados personalizados a objetos nas 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 pelo coletor de lixo, os dados serão perdidos.
Nas extensões do sistema de projeto do SharePoint, você também pode salvar dados de seqüência de caracteres que persiste 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:
Microsoft.VisualStudio.SharePoint.ISharePointProjectFeatureResourceFile
Microsoft.VisualStudio.SharePoint.ISharePointProjectItemFile
Microsoft.VisualStudio.SharePoint.ISharePointProjectItemType
Microsoft.VisualStudio.SharePoint.ISharePointProjectItemTypeDefinition
Microsoft.VisualStudio.SharePoint.Deployment.IDeploymentContext
Microsoft.VisualStudio.SharePoint.Explorer.IExplorerNodeType
Microsoft.VisualStudio.SharePoint.Explorer.IExplorerNodeTypeDefinition
Adicionando e recuperando dados personalizados
Para adicionar dados personalizados a um objeto em uma extensão de ferramentas do SharePoint, obter o Annotations 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, obter 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 tipos de 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 apenas 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, então o código adiciona o objeto para o Annotations a propriedade do item do projeto.Para ver este exemplo no contexto de um exemplo maior, consulte Como: adicionar uma propriedade a 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
Passo a passo: Criando um Item de projeto de ação personalizada com um modelo de Item, parte 1
Passo a passo: Estendendo o Server Explorer para exibir Web Parts
Conceitos
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 a um tipo de Item de projeto do SharePoint personalizado