Condividi tramite


Associazione di dati personalizzati alle estensioni degli strumenti di SharePoint

È possibile aggiungere dati personalizzati a determinati oggetti nelle estensioni degli strumenti di SharePoint. Ciò si rivela utile quando si dispone di dati in una determinata parte dell'estensione a cui si desidera accedere da un'altra parte di codice dell'estensione in un secondo momento. Anziché implementare un modo personalizzato per archiviare i dati e accedere a essi è possibile associare i dati a un oggetto nell'estensione e quindi recuperarli successivamente dallo stesso oggetto.

L'aggiunta di dati personalizzati agli oggetti risulta utile anche quando si desidera conservare i dati attinenti a un elemento specifico in Visual Studio. Le estensioni degli strumenti di SharePoint vengono caricate solo una volta in Visual Studio. Di conseguenza, è possibile che l'estensione utilizzi in qualsiasi momento diversi elementi di vario tipo (ad esempio progetti, elementi di progetto o nodi Server Explorer). Se si dispone di dati personalizzati attinenti solo a un elemento specifico, è possibile aggiungerli all'oggetto che lo rappresenta.

Quando si aggiungono dati personalizzati agli oggetti nelle estensioni degli strumenti di SharePoint, i dati non vengono conservati. I dati sono disponibili solo per la durata dell'oggetto. Dopo che l'oggetto viene recuperato dalla procedura di Garbage Collection, i dati verranno persi.

Nelle estensioni del sistema di progetto SharePoint è inoltre possibile salvare dati di tipo stringa che vengono conservati dopo lo scaricamento di un'estensione. Per ulteriori informazioni, vedere Salvataggio dei dati nelle estensioni del sistema di progetto SharePoint.

Oggetti che possono contenere dati personalizzati

È possibile aggiungere dati personalizzati a qualsiasi oggetto nel modello a oggetti degli strumenti di SharePoint che implementa l'interfaccia IAnnotatedObject. Questa interfaccia definisce solo una proprietà, Annotations, che rappresenta un insieme di oggetti dati personalizzati. I tipi seguenti implementano IAnnotatedObject:

Aggiunta e recupero di dati personalizzati

Per aggiungere dati personalizzati a un oggetto in un'estensione degli strumenti di SharePoint, ottenere la proprietà Annotations dell'oggetto a cui si desidera aggiungere i dati, quindi utilizzare il metodo IAnnotationDictionary.Add() per aggiungerli all'oggetto.

Per recuperare dati personalizzati da un oggetto in un'estensione degli strumenti di SharePoint, ottenere la proprietà Annotations dell'oggetto, quindi utilizzare uno dei metodi seguenti:

  • IAnnotationDictionary.TryGetValue(). Questo metodo restituisce true se l'oggetto dati esiste oppure false se non esiste. È possibile utilizzare questo metodo per recuperare istanze di tipi di valore o tipi di riferimento.

  • IAnnotationDictionary.GetValue(). Questo metodo restituisce l'oggetto dati se questo esiste. In caso contrario, restituisce null. È possibile utilizzare questo metodo solo per recuperare istanze di tipi di riferimento.

Nell'esempio di codice seguente viene illustrato come stabilire se un determinato oggetto dati è già associato a un elemento di progetto. Se l'oggetto dati non è già associato all'elemento di progetto, il codice aggiunge l'oggetto alla proprietà Annotations dell'elemento di progetto. Per vedere questo esempio nel contesto di un esempio più esaustivo, vedere Procedura: aggiungere una proprietà a un tipo di elemento di progetto SharePoint personalizzato.

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

Vedere anche

Attività

Procedura dettagliata: creazione di un Custom Action Project Item con un modello di elemento, parte 1

Procedura dettagliata: estensione di Esplora server per visualizzare web part

Altre risorse

Programmazione di concetti e funzionalità per le estensioni degli strumenti di SharePoint

Procedura: aggiungere una proprietà ai progetti SharePoint

Procedura: aggiungere una proprietà a un tipo di elemento di progetto SharePoint personalizzato