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
Creare un progetto Libreria di classi.
Aggiungere riferimenti agli assembly riportati di seguito:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Creare una classe che consente di implementare l'interfaccia ISharePointProjectItemTypeExtension.
Aggiungere gli attributi seguenti alla classe:
System.ComponentModel.Composition.ExportAttribute.Questo attributo consente a Visual Studio di individuare e caricare l'implementazione dell'oggetto ISharePointProjectItemTypeExtension.Passare il tipo ISharePointProjectItemTypeExtension al costruttore di attributo.
SharePointProjectItemTypeAttribute.In un'estensione di elemento del progetto, questo attributo consente di identificare l'elemento del progetto che si desidera estendere.Passare l'ID dell'elemento di progetto al costruttore dell'attributo.Per un elenco degli ID degli elementi di progetto inclusi in Visual Studio, vedere Estensione di elementi di progetto SharePoint.
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