Condividi tramite


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

  1. Creare un progetto Libreria di classi avente la configurazione seguente:

    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.

  2. Aggiungere riferimenti agli assembly riportati di seguito:

    • Microsoft.VisualStudio.SharePoint.Commands

    • Microsoft.SharePoint

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

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

Altre risorse

Procedura: eseguire un comando di SharePoint