Condividi tramite


Procedura: definire un tipo di elemento di progetto SharePoint

Definire un tipo di elemento di progetto quando si desidera creare un elemento di progetto SharePoint personalizzato. Per ulteriori informazioni, vedere Definizione di tipi di elementi di progetto SharePoint.

Per definire un tipo di elemento di progetto

  1. Creare un progetto Libreria di classi.

  2. Aggiungere riferimenti agli assembly riportati di seguito:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Creare una classe che consente di implementare l'interfaccia ISharePointProjectItemTypeProvider.

  4. Aggiungere gli attributi seguenti alla classe:

    • System.ComponentModel.Composition.ExportAttribute. Questo attributo consente a Visual Studio di individuare e caricare l'implementazione dell'oggetto ISharePointProjectItemTypeProvider. Passare il tipo ISharePointProjectItemTypeProvider al costruttore di attributo.

    • SharePointProjectItemTypeAttribute. In una definizione del tipo di elemento di progetto, questo attributo consente di specificare l'identificatore di stringa per il nuovo elemento di progetto. È consigliabile utilizzare il formato nome società.nome funzionalità per assicurarsi che tutti gli elementi di progetto dispongano di un nome univoco.

    • SharePointProjectItemIconAttribute. Questo attributo consente di specificare l'icona da visualizzare per questo elemento di progetto in Esplora soluzioni. Questo attributo è facoltativo; se non viene applicato alla classe, Visual Studio consente di visualizzare un'icona predefinita per l'elemento di progetto. Se si imposta questo attributo, passare il nome completo di un'icona o bitmap incorporata nell'assembly.

  5. Nell'implementazione del metodo InitializeType utilizzare i membri del parametro projectItemTypeDefinition per definire il comportamento del tipo di elemento di progetto. Questo parametro è un oggetto ISharePointProjectItemTypeDefinition che fornisce accesso agli eventi definiti nelle interfacce ISharePointProjectItemEvents e ISharePointProjectItemFileEvents. Per accedere a una specifica istanza del tipo di elemento di progetto personalizzato, gestire eventi ISharePointProjectItemEvents, quali ProjectItemAdded e ProjectItemInitialized.

Esempio

Nell'esempio di codice seguente viene illustrato come definire un semplice tipo di elemento di progetto. Con questo tipo di elemento di progetto viene scritto un messaggio nella finestra Output e nella finestra Elenco errori quando un utente aggiunge un elemento di progetto di questo tipo a un progetto.

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);
        }
    }
}

In questo esempio viene utilizzato il servizio del progetto SharePoint per scrivere il messaggio nella finestra Output e nella finestra Elenco errori. Per ulteriori informazioni, vedere Utilizzo del servizio di progetto SharePoint.

Compilazione del codice

In questo esempio sono richiesti riferimenti agli assembly seguenti:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Distribuzione dell'elemento di progetto

Per consentire ad altri sviluppatori di utilizzare l'elemento di progetto, creare un modello di progetto o un modello di elemento di progetto. Per ulteriori informazioni, vedere Creazione di modelli di elemento e di modelli di progetto per gli elementi di progetto SharePoint.

Per distribuire l'elemento di progetto, creare un pacchetto Visual Studio Extension (VSIX) per l'assembly, il modello e qualsiasi altro file che si desidera distribuire con l'elemento di progetto. Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.

Vedere anche

Attività

Procedura dettagliata: creazione di un Custom Action Project Item con un modello di elemento, parte 1

Altre risorse

Definizione di tipi di elementi di progetto SharePoint

Creazione di modelli di elemento e di modelli di progetto per gli elementi di progetto SharePoint

Procedura dettagliata: creazione di un elemento di progetto delle colonne del sito con un modello di progetto, parte 1

Procedura: aggiungere una proprietà a un tipo di elemento di progetto SharePoint personalizzato

Procedura: aggiungere una voce di menu di scelta rapida a un tipo di elemento di progetto SharePoint personalizzato