Associer des données personnalisées avec les extensions d’outils SharePointAssociate custom data with SharePoint tools extensions

Vous pouvez ajouter des données personnalisées à certains objets dans les extensions d’outils SharePoint.You can add custom data to certain objects in SharePoint tools extensions. Cela est utile lorsque vous avez des données dans une partie de votre extension que vous souhaitez accéder ultérieurement à partir de tout autre code dans votre extension.This is useful when you have data in one part of your extension that you want to access later from other code in your extension. Au lieu d’implémenter une manière personnalisée pour stocker et accéder aux données, vous pouvez associer les données à un objet dans votre extension et récupérer les données à partir du même objet ultérieurement.Instead of implementing a custom way to store and access data, you can associate the data with an object in your extension and then retrieve the data from the same object later.

Ajouter des données personnalisées aux objets est également utile lorsque vous souhaitez conserver les données qui s’appliquent à un élément spécifique dans Visual Studio.Adding custom data to objects is also useful when you want to preserve data that is relevant to a specific item in Visual Studio. Extensions d’outils SharePoint sont chargées une seule fois dans Visual Studio, par conséquent, votre extension peut fonctionner avec plusieurs éléments différents (tels que les projets, des éléments de projet ou Explorateur de serveurs nœuds) à tout moment.SharePoint tools extensions are loaded just once in Visual Studio, so your extension might work with several different items (such as projects, project items, or Server Explorer nodes) at any time. Si vous avez des données personnalisées qui s’appliquent uniquement à un élément spécifique, vous pouvez ajouter les données à l’objet qui représente cet élément.If you have custom data that is relevant only to a specific item, you can add the data to the object that represents that item.

Lorsque vous ajoutez des données personnalisées aux objets dans les extensions d’outils SharePoint, les données ne sont pas conservés.When you add custom data to objects in SharePoint tools extensions, the data does not persist. Les données sont disponibles uniquement pendant la durée de vie de l’objet.The data is available only during the lifespan of the object. Une fois que l’objet soit récupéré par le garbage collection, les données sont perdues.After the object is reclaimed by garbage collection, the data is lost.

Dans les extensions du système de projet SharePoint, vous pouvez également enregistrer des données de chaîne qui persiste après qu’une extension est déchargée.In extensions of the SharePoint project system, you can also save string data that persists after an extension is unloaded. Pour plus d’informations, consultez l’enregistrement des données dans les extensions du système de projet SharePoint.For more information, see Saving data in extensions of the SharePoint project system.

Objets qui peuvent contenir des donnéesObjects that can contain custom data

Vous pouvez ajouter des données personnalisées à n’importe quel objet dans le modèle objet des outils SharePoint qui implémente le IAnnotatedObject interface.You can add custom data to any object in the SharePoint tools object model that implements the IAnnotatedObject interface. Cette interface définit qu’une seule propriété, Annotations, qui est une collection d’objets de données personnalisés.This interface defines just one property, Annotations, which is a collection of custom data objects. Les types suivants implémentent IAnnotatedObject:The following types implement IAnnotatedObject:

Ajouter et récupérer des données personnaliséesAdd and retrieve custom data

Pour ajouter des données personnalisées à un objet dans une extension des outils SharePoint, obtenez la Annotations propriété de l’objet que vous souhaitez ajouter les données et ensuite utiliser le Add pour ajouter les données à l’objet.To add custom data to an object in a SharePoint tools extension, get the Annotations property of the object you want to add the data to, and then use the Add method to add the data to the object.

Pour récupérer des données personnalisées à partir d’un objet dans une extension des outils SharePoint, obtenez le Annotations propriété de l’objet puis suivez l’une des méthodes suivantes :To retrieve custom data from an object in a SharePoint tools extension, get the Annotations property of the object and then use one of the following methods:

  • TryGetValue.TryGetValue. Cette méthode retourne true si l’objet de données existe, ou false si elle n’existe pas.This method returns true if the data object exists, or false if it does not exist. Vous pouvez utiliser cette méthode pour récupérer des instances de types valeur ou des types référence.You can use this method to retrieve instances of value types or reference types.

  • GetValue.GetValue. Cette méthode retourne les données objet si elle se termine, ou null si elle n’existe pas.This method returns the data object if it exits, or null if it does not exist. Vous pouvez utiliser cette méthode uniquement pour récupérer des instances des types référence.You can use this method only to retrieve instances of reference types.

    L’exemple de code suivant détermine si un objet de données est déjà associé à un élément de projet.The following code example determines whether a certain data object is already associated with a project item. Si l’objet de données n’est pas déjà associé à l’élément de projet, le code ajoute l’objet à le Annotations propriété de l’élément de projet.If the data object is not already associated with the project item, then the code adds the object to the Annotations property of the project item. Pour voir cet exemple dans le contexte d’un exemple plus complet, consultez Comment : ajouter une propriété à un type d’élément de projet SharePoint personnalisé.To see this example in the context of a larger example, see How to: Add a property to a custom SharePoint project item type.

    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);
    }
    

Voir aussiSee also

Concepts de programmation et les fonctionnalités des extensions d’outils SharePoint Programming concepts and features for SharePoint tools extensions
Procédure pas à pas : Création d’un élément de projet d’action personnalisé avec un modèle d’élément, partie 1 Walkthrough: Creating a custom action project item with an item template, Part 1
Procédure pas à pas : Extension Explorateur de serveurs pour afficher des WebParts Walkthrough: Extending Server Explorer to display web parts
Comment : ajouter une propriété à des projets SharePoint How to: Add a property to SharePoint projects
Comment : ajouter une propriété à un type d’élément de projet SharePoint personnaliséHow to: Add a property to a custom SharePoint project item type