Como: Definir um tipo de Item de projeto do SharePoint
Quando você deseja criar um item de projeto personalizado do SharePoint, defina um tipo de item de projeto. 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 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 ISharePointProjectItemTypeProvider.
Adicione os seguintes atributos à classe:
System.ComponentModel.Composition.ExportAttribute. Este atributo permite Visual Studio descobrir e carregar o ISharePointProjectItemTypeProvider de implementação. Passar o ISharePointProjectItemTypeProvider o tipo para o construtor de atributo.
SharePointProjectItemTypeAttribute. Em uma definição de tipo de item de projeto, este atributo especifica o identificador de seqüência para o novo item de projeto. Recomendamos que você use o formato nome da empresa.nome do recurso para ajudar a certificar-se de que todos os itens de projeto tem um nome exclusivo.
SharePointProjectItemIconAttribute. Este atributo especifica o ícone para exibir este item de projeto no Solution Explorer. Esse atributo é opcional. Se você não aplicá-la à sua classe, o Visual Studio exibe um ícone padrão para o item de projeto. Se você definir esse atributo, passe o nome totalmente qualificado de um ícone ou bitmap incorporado no seu conjunto.
Na implementação da InitializeType método, use os membros a projectItemTypeDefinition parâmetro para definir o comportamento do tipo de item de projeto. Este parâmetro é um ISharePointProjectItemTypeDefinition objeto fornece acesso a eventos definidos no ISharePointProjectItemEvents e ISharePointProjectItemFileEvents interfaces. Para acessar uma instância específica de seu tipo de item de projeto, manipular ISharePointProjectItemEvents eventos como ProjectItemAdded e ProjectItemInitialized.
Exemplo
O exemplo de código a seguir demonstra como definir um tipo de item de projeto simples. Esse tipo de item de projeto grava uma mensagem para o saída janela e Error List janela quando um usuário adiciona um item de projeto desse tipo para 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 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
O Item de projeto de implantação
Para permitir que outros desenvolvedores a usar o item de projeto, crie um modelo de projeto ou de um modelo de item de projeto. Para obter mais informações, consulte Criando modelos de Item e projeto para os itens de projeto do SharePoint.
Para implantar o item de projeto, criar um Visual Studio pacote de extensão (VSIX) para o assembly, o modelo e quaisquer outros arquivos que você deseja distribuir com o item de projeto. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Consulte também
Tarefas
Outros recursos
Definindo tipos de Item de projeto do SharePoint personalizados
Criando modelos de Item e projeto para os itens de projeto do SharePoint
Como: Adicionar uma propriedade para um tipo de Item de projeto do SharePoint personalizado