Partilhar via


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

  1. Crie um projeto de biblioteca de classes.

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

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