Compartilhar via


Como: criar uma extensão de Item de projeto do SharePoint

Quando você deseja adicionar funcionalidade a um SharePoint projetoitem que já está instalado no Visual Studio, crie umaextensão deitemde projeto. Para mais informações, consulte Estendendo os itens de projeto do SharePoint.

Para criar umaextensão deitemde projeto

  1. Crie umprojetodebibliotecade classe.

  2. Adicione referências para os seguintes conjuntos de módulos (assemblies) :

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Crie uma nova classe que implemente a interface ISharePointProjectItemTypeExtension.

  4. Adicione os seguintes atributos à classe:

  5. Na sua implementação da Initialize método, os membros do uso da projectItemType parâmetro para definir o comportamento de sua extensão. Este parâmetro é um ISharePointProjectItemTypeo objeto que fornece acesso a eventos definidos a ISharePointProjectItemEvents e ISharePointProjectItemFileEvents interfaces. Para acessar uma instância específica do tipo deitem de projetovocê estiver estendendo, identificador ISharePointProjectItemEvents eventos, como ProjectItemAdded e ProjectItemInitialized.

Exemplo

O exemplo de código a seguir demonstra como criar uma simples extensão para oitemde projetode receptor de eventos. Cada vez que o usuário adiciona umitem de projetode receptor de eventos a um projetodo SharePoint, essa extensão grava uma mensagem para o saída janela e Lista de Errosjanela.

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

Este exemplo usa o serviço de projeto do SharePoint para gravar a mensagem para o saída janela e Lista de Errosjanela. Para mais informações, consulte Usando o serviço de projeto do SharePoint.

Compilando o código

Este exemplo requer referências aos assemblies seguintes:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Implantação da extensão

Para implantar a extensão, criar um Visual Studiode extensão (VSIX) de pacote para o assembly e quaisquer outros arquivos que você deseja distribuir com a extensão. Para mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.

Consulte também

Tarefas

Passo a passo: Estendendo um tipo de Item de projeto do SharePoint

Conceitos

Estendendo os itens de projeto do SharePoint