Como: Criar um comando do SharePoint
Se você quiser usar o modelo de objeto do servidor em uma extensão de ferramentas do SharePoint, você deve criar um personalizado comando do SharePoint para chamar a API. Você pode definir o comando do SharePoint em um assembly que pode chamar diretamente no modelo de objeto do servidor.
Para obter mais informações sobre a finalidade dos comandos do SharePoint, consulte A chamada para os modelos de objeto do SharePoint.
Para criar um comando do SharePoint
Crie um projeto de biblioteca de classe que possui a seguinte configuração:
Destinos do.NET Framework 3.5. Para obter mais informações sobre como selecionar a estrutura de destino, consulte Como: Destino de um específico.NET Framework versão ou perfil.
A plataforma x64 Qualquer_cpu ou x se destina. Por padrão, a plataforma de destino para projetos de biblioteca de classe é Qualquer_cpu. Para obter mais informações sobre como selecionar a plataforma de destino, consulte Como: Otimizar um aplicativo para um tipo específico de CPU.
Observação Não é possível implementar um comando do SharePoint no mesmo projeto que define uma extensão de ferramentas do SharePoint, porque o destino de comandos do SharePoint a.NET Framework 3.5 e o SharePoint destino de extensões de ferramentas de .NET Framework 4. Você deve definir os comandos do SharePoint que são usados por sua extensão em um projeto separado. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Adicione referências para os seguintes conjuntos de módulos (assemblies) :
Microsoft.VisualStudio.SharePoint.Commands
Microsoft. SharePoint
Em uma classe no projeto, crie um método que define o comando do SharePoint. O método deve estar de acordo com as diretrizes a seguir:
Ele pode ter um ou dois parâmetros.
O primeiro parâmetro deve ser um ISharePointCommandContext objeto. Este objeto fornece a Microsoft.SharePoint.SPSite ou Microsoft.SharePoint.SPWeb no qual o comando é executado. Ele também fornece um ISharePointCommandLogger objeto que pode ser usado para gravar mensagens para o saída janela ou Error List janela no Visual Studio.
O segundo parâmetro pode ser um tipo de sua escolha, mas este parâmetro é opcional. Você pode adicionar esse parâmetro para o comando do SharePoint, se você precisar passar dados de sua extensão de ferramentas do SharePoint para o comando.
Ele pode ter um valor de retorno, mas isso é opcional.
O segundo valor de parâmetro e retorno deve ser um tipo que pode ser serializado pelo Windows Communication Foundation (WCF). Para obter mais informações, consulte Types Supported by the Data Contract Serializer e Using the XmlSerializer Class.
O método pode ter qualquer visibilidade (public, internal, ou private), e pode ser estático ou não-static.
Aplicar o SharePointCommandAttribute para o método. Este atributo especifica um identificador exclusivo para o comando. Esse identificador não precisa corresponder ao nome do método.
Quando você chama o comando a partir de sua extensão de ferramentas do SharePoint, você deve especificar o mesmo identificador exclusivo. Para obter mais informações, consulte Como: Executar um comando do SharePoint.
Exemplo
O exemplo de código a seguir demonstra um comando do SharePoint que possui o identificador Contoso.Commands.UpgradeSolution. Este comando usa APIs no modelo de objeto do servidor para atualizar para uma solução implantada.
<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);
}
Com a primeira implícita ISharePointCommandContext parâmetro, este comando também tem um parâmetro de seqüência de caracteres personalizada que contém o caminho completo do arquivo. wsp, que está sendo atualizado para o site do SharePoint. Para ver este código no contexto de um exemplo maior, consulte Demonstra Passo a passo: A criação de uma etapa de implantação personalizado para projetos do SharePoint.
Compilando o código
Este exemplo requer referências aos assemblies seguintes:
Microsoft.VisualStudio.SharePoint.Commands
Microsoft. SharePoint
Implantando o comando
Para implantar o comando, inclua o conjunto de comando na mesma Visual Studio pacote de extensão (VSIX) com o assembly de extensão que usa o comando. Você também deve adicionar uma entrada para o assembly de comando no arquivo extension.vsixmanifest. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Consulte também
Tarefas
Demonstra Passo a passo: Estendendo o Server Explorer para exibir Web Parts
Conceitos
A chamada para os modelos de objeto do SharePoint