Cómo: Crear una extensión de elemento de proyecto de SharePointHow to: Create a SharePoint Project Item Extension

Crear una extensión de elemento de proyecto cuando desee agregar funcionalidad a un elemento de proyecto de SharePoint que ya está instalado en Visual Studio.Create a project item extension when you want to add functionality to a SharePoint project item that is already installed in Visual Studio. Para obtener más información, consulte extender elementos de proyecto de SharePoint.For more information, see Extending SharePoint Project Items.

Para crear una extensión de elemento de proyectoTo create a project item extension

  1. Cree un proyecto de biblioteca de clases.Create a class library project.

  2. Agregue referencias a los siguientes ensamblados:Add references to the following assemblies:

    • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

    • System.ComponentModel.CompositionSystem.ComponentModel.Composition

  3. Cree una clase que implemente la interfaz ISharePointProjectItemTypeExtension.Create a class that implements the ISharePointProjectItemTypeExtension interface.

  4. Agregue los siguientes atributos a la clase:Add the following attributes to the class:

  5. En la implementación de la Initialize método, los miembros del uso de la projectItemType parámetro para definir el comportamiento de la extensión.In your implementation of the Initialize method, use members of the projectItemType parameter to define the behavior of your extension. Este parámetro es un ISharePointProjectItemType objeto que proporciona acceso a los eventos definidos en el ISharePointProjectItemEvents y ISharePointProjectItemFileEvents interfaces.This parameter is an ISharePointProjectItemType object that provides access to the events defined in the ISharePointProjectItemEvents and ISharePointProjectItemFileEvents interfaces. Para obtener acceso a una instancia concreta del tipo de elemento de proyecto está ampliando, controlar ISharePointProjectItemEvents eventos, como ProjectItemAdded y ProjectItemInitialized.To access a specific instance of the project item type you are extending, handle ISharePointProjectItemEvents events such as ProjectItemAdded and ProjectItemInitialized.

EjemploExample

En el ejemplo de código siguiente se muestra cómo crear una extensión simple para el elemento de proyecto de receptor de eventos.The following code example demonstrates how to create a simple extension for the Event Receiver project item. Cada vez que el usuario agrega un elemento de proyecto de receptor de eventos a un proyecto de SharePoint, esta extensión escribe un mensaje a la salida ventana y lista de errores ventana.Each time the user adds an Event Receiver project item to a SharePoint project, this extension writes a message to the Output window and Error List window.

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

Este ejemplo utiliza el servicio de proyecto de SharePoint para escribir el mensaje a la salida ventana y lista de errores ventana.This example uses the SharePoint project service to write the message to the Output window and Error List window. Para obtener más información, consulte Using the SharePoint Project Service.For more information, see Using the SharePoint Project Service.

Compilar el códigoCompiling the Code

Este ejemplo requiere referencias a los siguientes ensamblados:This example requires references to the following assemblies:

  • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

  • System.ComponentModel.CompositionSystem.ComponentModel.Composition

Implementar la extensiónDeploying the Extension

Para implementar la extensión, cree un Visual StudioVisual Studio paquete de extensión (VSIX) para el ensamblado y cualquier otro archivo que desee distribuir con la extensión.To deploy the extension, create a Visual StudioVisual Studio extension (VSIX) package for the assembly and any other files that you want to distribute with the extension. Para obtener más información, consulte extensiones de implementación para las herramientas de SharePoint en Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Vea tambiénSee Also

Extender elementos de proyecto de SharePoint Extending SharePoint Project Items
Tutorial: Extender un tipo de elemento de proyecto de SharePointWalkthrough: Extending a SharePoint Project Item Type