Procedura: creare un comando di SharePoint
Se si desidera utilizzare il modello a oggetti del server in un'estensione degli strumenti di SharePoint, è necessario creare un comando di SharePoint personalizzato per chiamare l'API. Tale comando viene definito in un assembly in grado di effettuare chiamate direttamente nel modello a oggetti del server.
Per ulteriori informazioni sull'uso dei comandi di SharePoint, vedere Chiamate ai modelli a oggetti di SharePoint.
Per creare un comando di SharePoint
Creare un progetto Libreria di classi avente la configurazione seguente:
Destinata a .NET Framework 3.5. Per ulteriori informazioni sulla scelta del framework di destinazione, vedere Procedura: scelta di una versione o profilo di .NET Framework specifico.
Destinata alla piattaforma AnyCPU o x64. Per impostazione predefinita, la piattaforma di destinazione per i progetti Libreria di classi è AnyCPU. Per ulteriori informazioni sulla scelta della piattaforma di destinazione, vedere Procedura: ottimizzare un'applicazione per un tipo di CPU specifico.
Nota
Non è possibile implementare un comando di SharePoint nello stesso progetto che definisce un'estensione degli strumenti di SharePoint, poiché i comandi di SharePoint sono destinati a .NET Framework 3.5 e le estensioni degli strumenti di SharePoint sono destinate a .NET Framework 4. Tutti i comandi di SharePoint utilizzati dall'estensione devono essere definiti in un progetto a parte. Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.
Aggiungere riferimenti agli assembly riportati di seguito:
Microsoft.VisualStudio.SharePoint.Commands
Microsoft.SharePoint
In una classe nel progetto, creare un metodo che definisce il comando di SharePoint. Il metodo deve attenersi alle linee guida seguenti:
Può presentare uno o due parametri.
Il primo parametro deve essere un oggetto ISharePointCommandContext. Questo oggetto fornisce l'oggetto Microsoft.SharePoint.SPSite o Microsoft.SharePoint.SPWeb in cui viene eseguito il comando. Fornisce inoltre un oggetto ISharePointCommandLogger che può essere utilizzato per scrivere messaggi nella finestra Output o nella finestra Elenco errori in Visual Studio.
Il secondo parametro può essere un tipo di propria scelta, ma è facoltativo. Questo parametro può essere aggiunto al comando di SharePoint se è necessario passare dati dall'estensione degli strumenti di SharePoint al comando.
Può presentare un valore restituito.
Il secondo parametro e il valore restituito devono poter essere serializzati da Windows Communication Foundation (WCF). Per ulteriori informazioni, vedere Types Supported by the Data Contract Serializer e Using the XmlSerializer Class.
Il metodo può presentare qualsiasi tipo di visibilità (public, internalo private) e può essere statico o non statico.
Applicare l'oggetto SharePointCommandAttribute al metodo. Questo attributo specifica un identificatore univoco per il comando. Non è necessario che tale identificatore corrisponda al nome del metodo.
Questo stesso identificatore univoco deve essere specificato quando si chiama il comando dall'estensione degli strumenti di SharePoint. Per ulteriori informazioni, vedere Procedura: eseguire un comando di SharePoint.
Esempio
Nell'esempio di codice seguente viene illustrato un comando di SharePoint avente l'identificatore Contoso.Commands.UpgradeSolution. Questo comando utilizza API nel modello a oggetti del server per eseguire l'aggiornamento a una soluzione distribuita.
<SharePointCommand("Contoso.Commands.UpgradeSolution")> _
Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
If solution Is Nothing Then
Throw New InvalidOperationException("The solution has not been deployed.")
End If
solution.Upgrade(fullWspPath)
End Sub
[SharePointCommand("Contoso.Commands.UpgradeSolution")]
private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
{
SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];
if (solution == null)
{
throw new InvalidOperationException("The solution has not been deployed.");
}
solution.Upgrade(fullWspPath);
}
Oltre al primo parametro ISharePointCommandContext implicito, questo comando presenta un parametro stringa personalizzato che contiene il percorso completo del file con estensione .wsp che si sta aggiornando al sito di SharePoint. Per vedere questo codice nel contesto di un esempio più esaustivo, vedere Procedura dettagliata: creazione di un passaggio di distribuzione personalizzato per progetti SharePoint.
Compilazione del codice
In questo esempio sono richiesti riferimenti agli assembly seguenti:
Microsoft.VisualStudio.SharePoint.Commands
Microsoft.SharePoint
Distribuzione del comando
Per distribuire il comando, includere l'assembly del comando nello stesso pacchetto Visual Studio Extension (VSIX) con l'assembly dell'estensione che utilizza il comando. È inoltre necessario aggiungere una voce per l'assembly del comando nel file extension.vsixmanifest. Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.
Vedere anche
Attività
Procedura dettagliata: estensione di Esplora server per visualizzare web part
Concetti
Chiamate ai modelli a oggetti di SharePoint