Convertir los tipos de sistema de proyectos de SharePoint en otros tipos de proyecto de Visual Studio

Puede darse el caso en el que tiene un objeto en el sistema de proyectos de SharePoint y desea utilizar características de un objeto correspondiente del modelo de objetos de automatización o del modelo de objetos de integración de Visual Studio, o viceversa.En estos casos, puede utilizar el método Convert<TInput, TOutput> del servicio de proyecto de SharePoint para convertir el objeto en un modelo de objetos diferente.

Por ejemplo, podría tener un objeto ISharePointProject, pero desea utilizar métodos que solo están disponibles en el objeto Microsoft.VisualStudio.Shell.Interop.IVsProject o EnvDTE.Project.En este caso, puede usar el método Convert<TInput, TOutput> para convertir ISharePointProject en EnvDTE.Project o Microsoft.VisualStudio.Shell.Interop.IVsProject.

Para obtener más información sobre el modelo de objetos de automatización y el modelo de objetos de integración de Visual Studio, vea Información general del modelo de programación de extensiones de SharePoint.

Tipos de conversiones

En la tabla siguiente se enumeran los tipos que este método puede convertir del sistema de proyectos de SharePoint en otros modelos de objetos de Visual Studio.

Tipo de sistema de proyectos de SharePoint

Tipos correspondientes en los modelos de objetos de integración y automatización

ISharePointProject

EnvDTE.Project

o

Cualquier interfaz del modelo de objetos de integración de Visual Studio implementada por el objeto COM subyacente para el proyecto.Estas interfaces incluyen Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (o una interfaz derivada) y Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage.Para obtener una lista de las interfaces principales implementadas por los proyectos, vea Componentes del modelo de proyecto.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

o

Un valor UInt32 que identifica el miembro de proyecto (también denominado VSITEMID) en el Microsoft.VisualStudio.Shell.Interop.IVsHierarchy que lo contiene.Este valor puede pasarse al parámetro itemid de algunos métodos Microsoft.VisualStudio.Shell.Interop.IVsHierarchy.

Ejemplo

En el ejemplo de código siguiente se muestra cómo se usa el método Convert<TInput, TOutput> para convertir un objeto ISharePointProject en un objeto 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");
    }
}

Para este ejemplo se necesita:

Vea también

Conceptos

Utilizar el servicio de proyecto de SharePoint

Cómo: Recuperar el servicio de proyecto de SharePoint

Información general del modelo de programación de extensiones de SharePoint