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

  1. Crie um projeto de biblioteca de 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 ISharePointProjectItemTypeProvider.

  4. 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.

  5. 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

Demonstra Passo a passo: A criação de um Item de projeto de ação personalizada com um modelo de Item, parte 1

Outros recursos

Definindo tipos de Item de projeto do SharePoint personalizados

Criando modelos de Item e projeto para os itens de projeto do SharePoint

Demonstra Passo a passo: A criação de um Item de projeto da coluna de Site com um modelo de projeto, parte 1

Como: Adicionar uma propriedade para um tipo de Item de projeto do SharePoint personalizado

Como: Adicionar um Item de Menu de atalho para um tipo de Item de projeto do SharePoint personalizado