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
Crie umprojetodebibliotecade 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 seu ISharePointProjectItemTypeExtension implementação.Passar o ISharePointProjectItemTypeExtension tipo para oconstrutorde atributo.
SharePointProjectItemTypeAttribute.Em umitemde projetoextensão, este atributo identifica oitem de projetoque deseja estender. Passe o ID doitem de projetopara oconstrutorde atributo. Para obter uma lista de IDs de itens de projeto , consulte Estendendo os itens de projeto do SharePoint.
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