SharePoint ツールの拡張機能でサーバー オブジェクト モデルを使用する必要がある場合は、API を呼び出すためのカスタム SharePoint コマンドを作成する必要があります。コマンドを定義し、SharePoint ツールの拡張機能を使用してコマンドを配置した後に、拡張機能でコマンドを実行して SharePoint サーバー オブジェクト モデルを呼び出すことができます。ISharePointConnection オブジェクトの ExecuteCommand メソッドのいずれかを使用して、コマンドを実行します。
SharePoint コマンドの用途の詳細については、「SharePoint オブジェクト モデルの呼び出し」を参照してください。
SharePoint コマンドを実行するには
SharePoint ツールの拡張機能で、ISharePointConnection オブジェクトを取得します。ISharePointConnection オブジェクトをどのように取得するかは、作成しようとしている拡張機能の種類によって異なります。
SharePoint プロジェクト システムの拡張機能の場合は、ISharePointProject.SharePointConnection プロパティを使用します。
プロジェクト システムの拡張機能の詳細については、「SharePoint プロジェクト システムの拡張」を参照してください。
サーバー エクスプローラーの [SharePoint 接続] ノードの拡張機能の場合は IExplorerNodeContext.SharePointConnection プロパティを使用します。IExplorerNodeContext オブジェクトを取得するには、IExplorerNode.Context プロパティを使用します。
サーバー エクスプローラーの拡張機能の詳細については、「サーバー エクスプローラーの [SharePoint 接続] ノードの拡張」を参照してください。
プロジェクト テンプレート ウィザードなど、SharePoint ツールの拡張機能には属さないコードの場合は、ISharePointProjectService.SharePointConnection プロパティを使用します。
プロジェクト サービスの取得の詳細については、「SharePoint プロジェクト サービスの使用」を参照してください。
ISharePointConnection オブジェクトの ExecuteCommand メソッドのいずれかを呼び出します。実行するコマンド名を ExecuteCommand メソッドの 1 番目の引数に渡します。コマンドにカスタム パラメーターがある場合には、そのパラメーターを ExecuteCommand メソッドの 2 番目の引数に渡します。
ExecuteCommand には複数のオーバーロードが存在し、それぞれ異なるコマンド シグネチャがサポートされています。サポートされているシグネチャと、各シグネチャに対応するオーバーロードを次の表に示します。
コマンド シグネチャ
対応する ExecuteCommand オーバーロード
既定の ISharePointCommandContext パラメーターのみ、戻り値なし。
既定の ISharePointCommandContext パラメーターのみ、戻り値あり。
パラメーターは 2 つ (既定の ISharePointCommandContext パラメーターとカスタム パラメーター)、戻り値なし。
パラメーターは 2 つ、戻り値あり。
使用例
次のコード例は、ExecuteCommand<T>(String, T) オーバーロードを使用して、方法: 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 メソッドは、カスタムの配置手順における IDeploymentStep インターフェイスの Execute メソッドの実装です。このコードのコンテキストを確認するには、「チュートリアル: SharePoint プロジェクトに対するカスタムの配置手順の作成」を参照してください。
ExecuteCommand<T>(String, T) メソッドの呼び出しに関しては、次の点に注意してください。
第 1 パラメーターには、呼び出すコマンドを指定します。この文字列は、コマンド定義で SharePointCommandAttribute に渡す値と一致します。
第 2 パラメーターは、コマンドのカスタムの第 2 パラメーターに渡す値です。この場合、値は SharePoint サイトにアップグレードされる .wsp ファイルの完全パスです。
このコードでは、暗黙の ISharePointCommandContext パラメーターをコマンドに渡すことはしていません。このパラメーターは、SharePoint プロジェクト システムの拡張機能から、またはサーバー エクスプローラーの [SharePoint 接続] ノードの拡張機能からコマンドを呼び出すときに自動的に渡されます。Microsoft.VisualStudio.TemplateWizard.IWizard インターフェイスを実装するプロジェクト テンプレート ウィザードなど、他のタイプのソリューションでは、このパラメーターは null です。
コードのコンパイル
この例では、Microsoft.VisualStudio.SharePoint アセンブリへの参照が必要です。
参照
処理手順
チュートリアル: サーバー エクスプローラーを拡張して Web パーツを表示する