Como: definir um tipo de Item de projeto do SharePoint
Defina um tipo de item de projeto quando você deseja criar um item de projeto personalizado do SharePoint.Para obter mais informações, consulte Definindo tipos de Item de projeto do SharePoint personalizados.
Para definir um tipo de item de projeto
Crie um projeto de biblioteca de classes.
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 ISharePointProjectItemTypeProvider.
Adicione os seguintes atributos à classe:
System.ComponentModel.Composition.ExportAttribute.Esse atributo permite que o Visual Studio para descobrir e carregar sua implementação de ISharePointProjectItemTypeProvider .Passar o tipo de ISharePointProjectItemTypeProvider para o construtor do atributo.
SharePointProjectItemTypeAttribute.Em uma definição de tipo de item de projeto, este atributo especifica o identificador de cadeia de caracteres para o novo item de projeto.É recomendável que você use o formato nome da empresa.nome do recurso para ajudar a garantir que todos os itens de projeto têm um nome exclusivo.
SharePointProjectItemIconAttribute.Este atributo especifica o ícone para exibir para este item de projeto em Gerenciador de Soluções.Esse atributo é opcional; se você não o aplica à sua classe, o Visual Studio exibe um ícone padrão para o item de projeto.Se você definir o atributo, passa o nome totalmente qualificado de um ícone ou um bitmap que está inserido no assembly.
Em a implementação do método de InitializeType , use membros de parâmetro de projectItemTypeDefinition para definir o comportamento de tipo de item de projeto.Esse parâmetro é um objeto de ISharePointProjectItemTypeDefinition que fornece acesso a eventos definidos em ISharePointProjectItemEvents e ISharePointProjectItemFileEvents de interface.Para acessar uma instância específica do tipo de item de projeto, manipular eventos de ISharePointProjectItemEvents como ProjectItemAdded e ProjectItemInitialized.
Exemplo
O exemplo de código demonstra como definir um tipo de item de projeto simples.Esse tipo de item de projeto grava uma mensagem à janela de Saída e para a janela de Lista de erros quando um usuário adiciona um item de projeto de esse tipo a um projeto.
Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Namespace Contoso.ExampleProjectItemType
<Export(GetType(ISharePointProjectItemTypeProvider))> _
<SharePointProjectItemType("Contoso.ExampleProjectItemType")> _
<SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")> _
Friend Class ExampleProjectItemType
Implements ISharePointProjectItemTypeProvider
Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
Implements ISharePointProjectItemTypeProvider.InitializeType
projectItemTypeDefinition.Name = "ExampleProjectItemType"
projectItemTypeDefinition.SupportedDeploymentScopes = _
SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
AddHandler projectItemTypeDefinition.ProjectItemAdded, AddressOf ProjectItemAdded
End Sub
Private Sub ProjectItemAdded(ByVal Sender As Object, ByVal e As SharePointProjectItemEventArgs)
Dim Message As String = String.Format("An example project item named {0} was added to the {1} project.", _
e.ProjectItem.Name, e.ProjectItem.Project.Name)
e.ProjectItem.Project.ProjectService.Logger.WriteLine(Message, LogCategory.Message)
End Sub
End Class
End Namespace
using System;
using Microsoft.VisualStudio.SharePoint;
using System.ComponentModel.Composition;
namespace Contoso.ExampleProjectItemType
{
[Export(typeof(ISharePointProjectItemTypeProvider))]
[SharePointProjectItemType("Contoso.ExampleProjectItemType")]
[SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")]
internal class ExampleProjectItemType : ISharePointProjectItemTypeProvider
{
public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
{
projectItemTypeDefinition.Name = "ExampleProjectItemType";
projectItemTypeDefinition.SupportedDeploymentScopes =
SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
projectItemTypeDefinition.ProjectItemAdded += projectItemTypeDefinition_ProjectItemAdded;
}
void projectItemTypeDefinition_ProjectItemAdded(object sender, SharePointProjectItemEventArgs e)
{
string message = String.Format("An example project item named {0} was added to the {1} project.",
e.ProjectItem.Name, e.ProjectItem.Project.Name);
e.ProjectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
}
}
Este exemplo usa o serviço de projeto do SharePoint para gravar a mensagem para a janela de Saída e para a janela de Lista de erros .Para obter mais informações, consulte Usando o serviço de projeto do SharePoint.
Compilando o código
Este exemplo requer referências para os seguintes conjuntos de módulos (assemblies):
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Implantando o item de projeto
Para ativar outros desenvolvedores para usar o item de projeto, crie um modelo de projeto ou um modelo de item de projeto.Para obter mais informações, consulte Criando modelos de Item e projeto para itens de projeto do SharePoint.
Para implantar o item de projeto, crie um pacote de extensão de Visual Studio (VSIX) para o assembly, o modelo, e todos os outros arquivos que você deseja distribuir com o item de projeto.Para obter mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.
Consulte também
Tarefas
Passo a passo: Criando um Item de projeto de ação personalizada com um modelo de Item, parte 1
Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 1
Conceitos
Definindo tipos de Item de projeto do SharePoint personalizados
Criando modelos de Item e projeto para itens de projeto do SharePoint
Como: adicionar uma propriedade a um tipo de Item de projeto do SharePoint personalizado
Como: adiciona um Item de Menu de atalho para um tipo de Item de projeto do SharePoint personalizado