Compartir a través de


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

  1. Cree un proyecto de biblioteca de clases

  2. Agregue referencias a los siguientes ensamblados:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Cree una clase que implemente la interfaz ISharePointProjectItemTypeExtension.

  4. Agregue a la clase los atributos siguientes:

  5. 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

Conceptos

Extender elementos de proyecto de SharePoint