Condividi tramite


Procedura: creare un'estensione di elemento del progetto SharePoint

Creare un'estensione di elemento del progetto quando si desidera aggiungere la funzionalità a un elemento del progetto SharePoint già installato in Visual Studio. Per ulteriori informazioni, vedere Estensione di elementi di progetto SharePoint.

Per creare un'estensione di elemento del progetto

  1. Creare un progetto Libreria di classi.

  2. Aggiungere riferimenti agli assembly riportati di seguito:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Creare una classe che consente di implementare l'interfaccia ISharePointProjectItemTypeExtension.

  4. Aggiungere gli attributi seguenti alla classe:

  5. Nell'implementazione del metodo Initialize utilizzare i membri del parametro projectItemType per definire il comportamento dell'estensione. Questo parametro è un oggetto ISharePointProjectItemType che fornisce accesso agli eventi definiti nelle interfacce ISharePointProjectItemEvents e ISharePointProjectItemFileEvents. Per accedere a una specifica istanza del tipo di elemento di progetto da estendere, gestire eventi ISharePointProjectItemEvents, quali ProjectItemAdded e ProjectItemInitialized.

Esempio

Nell'esempio di codice seguente viene illustrato come creare una semplice estensione per l'elemento del progetto Ricevitore di eventi. Ogni volta che l'utente aggiunge un elemento del progetto Ricevitore di eventi in un progetto SharePoint, questa estensione scrive un messaggio nella finestra Output e nella finestra Elenco errori.

Imports Microsoft.VisualStudio.SharePoint
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Composition

Namespace Contoso.ExampleProjectItemExtension

    <Export(GetType(ISharePointProjectItemTypeExtension))> _
    <SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")> _
    Friend Class ExampleProjectItemExtension
        Implements ISharePointProjectItemTypeExtension

        Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _
            Implements ISharePointProjectItemTypeExtension.Initialize
            AddHandler projectItemType.ProjectItemAdded, AddressOf ProjectItemAdded
        End Sub

        Private Sub ProjectItemAdded(ByVal Sender As Object, ByVal e As SharePointProjectItemEventArgs)
            Dim projectItem As ISharePointProjectItem = CType(Sender, ISharePointProjectItem)
            Dim Message As String = String.Format("An Event Handler project item named {0} was added to the {1} project.", _
                projectItem.Name, projectItem.Project.Name)
            projectItem.Project.ProjectService.Logger.WriteLine(Message, LogCategory.Message)
        End Sub
    End Class
End Namespace
using Microsoft.VisualStudio.SharePoint;
using System;
using System.ComponentModel;
using System.ComponentModel.Composition;

namespace Contoso.ExampleProjectItemExtension
{
    [Export(typeof(ISharePointProjectItemTypeExtension))]
    [SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")]
    internal class ExampleProjectItemExtension : ISharePointProjectItemTypeExtension
    {
        public void Initialize(ISharePointProjectItemType projectItemType)
        {
            projectItemType.ProjectItemAdded += projectItemType_ProjectItemAdded;
        }

        void projectItemType_ProjectItemAdded(object sender, SharePointProjectItemEventArgs e)
        {
            ISharePointProjectItem projectItem = (ISharePointProjectItem)sender;
            string message = String.Format("An Event Handler project item named {0} was added to the {1} project.",
                projectItem.Name, projectItem.Project.Name);
            projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
        }
    }
}

In questo esempio viene utilizzato il servizio del progetto SharePoint per scrivere il messaggio nella finestra Output e nella finestra Elenco errori. Per ulteriori informazioni, vedere Utilizzo del servizio di progetto SharePoint.

Compilazione del codice

In questo esempio sono richiesti riferimenti agli assembly seguenti:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Distribuzione dell'estensione

Per distribuire l'estensione, creare un pacchetto Visual Studio Extension (VSIX) per l'assembly e qualsiasi altro file che si desidera distribuire con l'estensione. Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.

Vedere anche

Attività

Procedura dettagliata: estensione di un tipo di elemento di progetto SharePoint

Altre risorse

Estensione di elementi di progetto SharePoint