SharePoint ツールの拡張機能でサーバー オブジェクト モデルを使用する必要がある場合は、API を呼び出すためのカスタム SharePoint コマンドを作成する必要があります。 コマンドを定義し、SharePoint ツールの拡張機能を使用してコマンドを配置した後に、拡張機能でコマンドを実行して SharePoint サーバー オブジェクト モデルを呼び出すことができます。 ISharePointConnection オブジェクトの ExecuteCommand メソッドのいずれかを使用して、コマンドを実行します。
SharePoint コマンドの用途の詳細については、「SharePoint オブジェクト モデルの呼び出し」を参照してください。
SharePoint コマンドを実行するには
SharePoint ツールの拡張機能で、ISharePointConnection オブジェクトを取得します。 ISharePointConnection オブジェクトをどのように取得するかは、作成しようとしている拡張機能の種類によって異なります。
SharePoint プロジェクト システムの拡張機能の場合は、ISharePointProject.SharePointConnection プロパティを使用します。
プロジェクト システムの拡張機能の詳細については、「SharePoint プロジェクト システムの拡張」を参照してください。
サーバー エクスプローラーの [SharePoint 接続] ノードの拡張機能の場合は IExplorerNodeContext.SharePointConnection プロパティを使用します。 IExplorerNode.Context オブジェクトを取得するには、IExplorerNodeContext プロパティを使用します。
サーバー エクスプローラーの拡張機能の詳細については、「サーバー エクスプローラーの [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 アセンブリへの参照が必要です。