Conversão entre tipos de sistema do projeto do SharePoint e outros tipos de projeto de Visual Studio
Em alguns casos, você pode ter um objeto no sistema de projeto do SharePoint e você desejar usar recursos de um objeto correspondente no modelo de objeto de automação de Visual Studio ou modelo de objeto de integração, ou vice-versa. Nesses casos, você pode usar o Convert<TInput, TOutput> o método do serviço de projeto do SharePoint para converter o objeto para um modelo de objeto diferente.
Por exemplo, você pode ter um ISharePointProject objeto, mas você deseja usar métodos estão disponíveis somente em um EnvDTE.Project ou Microsoft.VisualStudio.Shell.Interop.IVsProject objeto. Nesse caso, você pode usar o Convert<TInput, TOutput> método para converter o ISharePointProject para um EnvDTE.Project ou Microsoft.VisualStudio.Shell.Interop.IVsProject.
Para obter mais informações sobre o modelo de objeto de automação de Visual Studio e o modelo de objeto de integração de Visual Studio, consulte Visão geral do modelo de programação de extensões de ferramentas do SharePoint.
Tipos de conversões
A tabela a seguir lista os tipos que esse método pode converter entre o sistema de projeto do SharePoint e outros modelos de objeto de Visual Studio.
Tipo de sistema de projeto do SharePoint |
Tipos correspondentes nos modelos de objeto de automação e integração |
---|---|
ou Qualquer interface no modelo de objeto de integração de Visual Studio que é implementado pelo objeto COM base para o projeto. Essas interfaces incluem Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (ou uma interface derivada) e Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage. Para obter uma lista das principais interfaces que são implementados por projetos, consulte Project Model Core Components. |
|
ou A UInt32 valor (também chamado de um VSITEMID) que identifica o membro do projeto na Microsoft.VisualStudio.Shell.Interop.IVsHierarchy que contém o proprietário. Esse valor pode ser passado para o itemid parâmetro de alguns Microsoft.VisualStudio.Shell.Interop.IVsHierarchy métodos. |
Exemplo
O exemplo de código a seguir demonstra como usar o Convert<TInput, TOutput> método para converter um ISharePointProject o objeto para um EnvDTE.Project.
Private Sub projectService_ProjectAdded(ByVal sender As Object, _
ByVal e As Microsoft.VisualStudio.SharePoint.SharePointProjectEventArgs)
Dim dteProject As EnvDTE.Project = e.Project.ProjectService.Convert( _
Of Microsoft.VisualStudio.SharePoint.ISharePointProject, EnvDTE.Project)(e.Project)
If dteProject IsNot Nothing Then
' Use the Visual Studio automation object model to add a folder to the project.
dteProject.ProjectItems.AddFolder("Data")
End If
End Sub
void projectService_ProjectAdded(object sender, Microsoft.VisualStudio.SharePoint.SharePointProjectEventArgs e)
{
EnvDTE.Project dteProject = e.Project.ProjectService.Convert<
Microsoft.VisualStudio.SharePoint.ISharePointProject, EnvDTE.Project>(e.Project);
if (dteProject != null)
{
// Use the Visual Studio automation object model to add a folder to the project.
dteProject.ProjectItems.AddFolder("Data");
}
}
Este exemplo requer:
Uma extensão do sistema de projeto do SharePoint tem uma referência ao assembly EnvDTE.dll. Para obter mais informações, consulte Estendendo o sistema de projeto do SharePoint.
Código que registra o projectService_ProjectAdded método para manipular o ProjectAdded o evento de um ISharePointProjectService objeto. Para um exemplo, consulte Como: Criar uma extensão de projeto do SharePoint.
Consulte também
Conceitos
Usando o serviço de projeto do SharePoint
Visão geral do modelo de programação de extensões de ferramentas do SharePoint