Cómo: Crear una extensión de elemento de proyecto de SharePoint
Cree una extensión de elemento de proyecto cuando desee agregar funcionalidad a un elemento de proyecto de SharePoint que ya se encuentra instalado en Visual Studio. Para obtener más información, vea Extender elementos de proyecto de SharePoint.
Para crear una extensión de elemento de proyecto
Cree un proyecto de biblioteca de clases
Agregue referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Cree una clase que implemente la interfaz ISharePointProjectItemTypeExtension.
Agregue a la clase los atributos siguientes:
System.ComponentModel.Composition.ExportAttribute. Este atributo permite que Visual Studio detecte y cargue la implementación de ISharePointProjectItemTypeExtension. Pase el tipo ISharePointProjectItemTypeExtension al constructor del atributo.
SharePointProjectItemTypeAttribute. En una extensión de elemento de proyecto, este atributo identifica el elemento que desea extender. Pase el identificador del elemento de proyecto al constructor del atributo. Para obtener una lista de los identificadores de los elementos de proyecto que están incluidos en Visual Studio 2010, vea Extender elementos de proyecto de SharePoint.
En la implementación del método Initialize, use los miembros del parámetro projectItemType para definir el comportamiento de la extensión. Este parámetro es un objeto ISharePointProjectItemType que proporciona acceso a los eventos definidos en las interfaces ISharePointProjectItemEvents e ISharePointProjectItemFileEvents. Para obtener acceso a una instancia concreta del tipo de elemento de proyecto que va a extender, controle los eventos de ISharePointProjectItemEvents, como ProjectItemAdded y ProjectItemInitialized.
Ejemplo
En el ejemplo de código siguiente se muestra cómo crear una extensión simple para el elemento de proyecto Receptor de eventos. Cada vez que el usuario agrega un elemento de proyecto Receptor de eventos a un proyecto de SharePoint, esta extensión escribe un mensaje en la Ventana de salida y en la ventana Lista de errores.
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);
}
}
}
En este ejemplo, se usa el servicio de proyecto de SharePoint para escribir el mensaje en la Ventana de salida y en la ventana Lista de errores. Para obtener más información, vea Utilizar el servicio de proyecto de SharePoint.
Compilar el código
Para este ejemplo se requieren referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Implementar la extensión
Para implementar la extensión, cree un paquete de extensión (VSIX) de Visual Studio para el ensamblado y el resto de archivos que desee distribuir con la extensión. Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.
Vea también
Tareas
Tutorial: Extender un tipo de elemento de proyecto de SharePoint