Compartilhar via


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

ISharePointProject

EnvDTE.Project

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.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

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:

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

Outros recursos

Como: Recuperar o serviço de projeto do SharePoint