共用方式為


HOW TO:執行 SharePoint 命令

如果您要在 SharePoint 工具擴充功能中使用伺服器物件模型,則必須建立自訂的「SharePoint 命令」(SharePoint Command) 來呼叫 API。 在定義命令並使用 SharePoint 工具擴充功能部署該命令之後,擴充功能會執行該命令,以呼叫 SharePoint 伺服器物件模型。 若要執行命令,請使用 ISharePointConnection 物件的其中一個 ExecuteCommand 方法。

如需 SharePoint 命令用途的詳細資訊,請參閱呼叫 SharePoint 物件模型

若要執行 SharePoint 命令

  1. 在 SharePoint 工具擴充功能中,取得 ISharePointConnection 物件。 取得 ISharePointConnection 物件的方式根據建立的擴充功能類型而定:

  2. 呼叫 ISharePointConnection 物件的其中一個 ExecuteCommand 方法。 將您要執行的命令名稱傳遞至 ExecuteCommand 方法的第一個引數。 如果命令具有自訂參數,請將該參數傳遞至 ExecuteCommand 方法的第二個引數。

    每一個支援的命令簽章都有不同的 ExecuteCommand 多載。 下表列出支援的簽章和每一個簽章使用的多載。

    命令簽章

    要使用的 ExecuteCommand 多載

    命令只有預設的 ISharePointCommandContext 參數,沒有傳回值。

    ExecuteCommand(String)

    命令只有預設的 ISharePointCommandContext 參數和傳回值。

    ExecuteCommand<TResult>(String)

    命令有兩個參數 (預設的 ISharePointCommandContext 參數和自訂參數),沒有傳回值。

    ExecuteCommand<T>(String, T)

    命令有兩個參數和一個傳回值。

    ExecuteCommand<T, TResult>(String, T)

範例

下列程式碼範例示範了如何使用 ExecuteCommand<T>(String, T) 多載呼叫在 HOW TO:建立 SharePoint 命令中所述的 Contoso.Commands.UpgradeSolution 命令。

Private Sub Execute(ByVal context As IDeploymentContext) _
    Implements IDeploymentStep.Execute
    context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status)
    context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _
        solutionFullPath)
End Sub
public void Execute(IDeploymentContext context)
{
    context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status);
    context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution",
        solutionFullPath);
}

在此範例中顯示的 Execute 方法是 Execute 方法的實作,其屬於自訂部署步驟中的 IDeploymentStep 介面。 若要在完整的範例內容中查看這個程式碼,請參閱逐步解說:建立 SharePoint 專案的自訂部署步驟

請注意下面關於 ExecuteCommand<T>(String, T) 方法之呼叫的詳細資料:

  • 第一個參數會識別您要呼叫的命令。 此字串與您傳遞至命令定義上 SharePointCommandAttribute 的值相符。

  • 第二個參數是您要傳遞至命令的第二個自訂參數的值。 在此情況下,它是要更新至 SharePoint 網站之 .wsp 檔案的完整路徑。

  • 程式碼並未傳遞隱含的 ISharePointCommandContext 參數至命令。 當您從 SharePoint 專案系統的擴充功能,或是 [伺服器總管] 中 [SharePoint 連接] 節點的擴充功能呼叫命令時,該參數便會自動傳遞至命令。 在其他類型的方案中 (例如,實作 Microsoft.VisualStudio.TemplateWizard.IWizard 介面的專案範本精靈),此參數為 null。

編譯程式碼

這個範例需要參考 Microsoft.VisualStudio.SharePoint 組件。

請參閱

工作

逐步解說:擴充伺服器總管以顯示 Web 組件

概念

呼叫 SharePoint 物件模型

其他資源

HOW TO:建立 SharePoint 命令