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
Creare un progetto Libreria di classi.
Aggiungere riferimenti agli assembly riportati di seguito:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Creare una classe che consente di implementare l'interfaccia ISharePointProjectItemTypeProvider.
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.
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à
Concetti
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: aggiungere una proprietà a un tipo di elemento di progetto SharePoint personalizzato