Como: Criar uma extensão de Item de projeto do SharePoint
Crie uma extensão de item de projeto quando quiser adicionar funcionalidade a um item de projeto do SharePoint já está instalado em Visual Studio. Para obter mais informações, consulte Estendendo os itens de projeto do SharePoint.
Para criar uma extensão de item de projeto
Crie um projeto de biblioteca de classe.
Adicione referências para os seguintes conjuntos de módulos (assemblies) :
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Crie uma nova classe que implemente a interface ISharePointProjectItemTypeExtension.
Adicione os seguintes atributos à classe:
System.ComponentModel.Composition.ExportAttribute. Este atributo permite Visual Studio descobrir e carregar o ISharePointProjectItemTypeExtension de implementação. Passar o ISharePointProjectItemTypeExtension o tipo para o construtor de atributo.
SharePointProjectItemTypeAttribute. Uma extensão de item de projeto, este atributo identifica o item de projeto que você deseja estender. Passe o ID de item de projeto para o construtor de atributo. Para obter uma lista de IDs de itens de projeto incluídos com Visual Studio 2010, consulte Estendendo os itens de projeto do SharePoint.
Na implementação da Initialize método, use os membros a projectItemType parâmetro para definir o comportamento de extensão. Este parâmetro é um ISharePointProjectItemType objeto fornece acesso a eventos definidos no ISharePointProjectItemEvents e ISharePointProjectItemFileEvents interfaces. Para acessar uma instância específica do tipo de item de projeto que você estiver estendendo, manipular ISharePointProjectItemEvents eventos como ProjectItemAdded e ProjectItemInitialized.
Exemplo
O exemplo de código a seguir demonstra como criar uma simples extensão do item de projeto do receptor de eventos. Cada vez que o usuário adiciona um item de projeto do receptor de evento a um projeto do SharePoint, essa extensão grava uma mensagem para o saída janela e Error List janela.
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 Error List janela. Para obter 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 Studio pacote de extensão (VSIX) para o assembly e outros arquivos que você deseja distribuir com extensão. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Consulte também
Tarefas
Demonstra Passo a passo: Estendendo um tipo de Item de projeto do SharePoint