Partager via


Conversion entre des types d'un système de projet SharePoint et d'autres types de projets Visual Studio

Il arrive, dans certains cas, que l'objet à votre disposition dans le système de projet SharePoint ne soit pas tout à fait satisfaisant et que vous ayez l'intention d'exploiter les fonctionnalités d'un objet correspondant dans le modèle d'objet Automation Visual Studio ou dans le modèle d'objet Intégration, ou vice versa.Dans de telles situations, vous pouvez utiliser la méthode Convert<TInput, TOutput> du service de projet SharePoint pour convertir l'objet en un modèle d'objet différent.

Admettons, par exemple, que vous ayez accès à un objet ISharePointProject, mais que vous préfériez utiliser les méthodes applicables uniquement à un objet EnvDTE.Project ou Microsoft.VisualStudio.Shell.Interop.IVsProject.Dans ce cas, vous pouvez recourir à la méthode Convert<TInput, TOutput> pour convertir le ISharePointProject en un EnvDTE.Project ou un Microsoft.VisualStudio.Shell.Interop.IVsProject.

Pour plus d'informations sur le modèle d'objet Automation Visual Studio et le modèle d'objet Intégration Visual Studio, consultez Vue d'ensemble du modèle de programmation des extensions d'outils SharePoint.

Types de conversions

Le tableau suivant répertorie les types qu'il est possible de convertir, au moyen de cette méthode, entre le système de projet SharePoint et les autres modèles d'objet de Visual Studio.

Type de système de projet SharePoint

Types correspondants dans les modèles d'objet Automation et Intégration

ISharePointProject

EnvDTE.Project

ou

Une interface dans le modèle d'objet intégration Visual Studio implémentée par l'objet COM sous-jacent pour le projet.Ces interfaces incluent Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (ou une interface dérivée) et Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage.Pour obtenir la liste des interfaces principales qui sont implémentées par projets, consultez Composants principaux du modèle de projet.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

ou

Valeur UInt32 (également appelée VSITEMID) servant à identifier le membre du projet dans le Microsoft.VisualStudio.Shell.Interop.IVsHierarchy où il figure.Cette valeur peut être transmise au paramètre itemid de certaines méthodes Microsoft.VisualStudio.Shell.Interop.IVsHierarchy.

Exemple

L'exemple de code suivant montre comment utiliser la méthode Convert<TInput, TOutput> pour convertir un objet ISharePointProject en 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");
    }
}

Cet exemple nécessite :

Voir aussi

Concepts

Utilisation du service de projet SharePoint

Comment : récupérer le service de projet SharePoint

Vue d'ensemble du modèle de programmation des extensions d'outils SharePoint