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 |
---|---|
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. |
|
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 :
une extension du système de projet SharePoint qui comporte une référence à l'assembly EnvDTE.dll.Pour plus d'informations, consultez Extension du système de projet SharePoint.
du code qui enregistre la méthode projectService_ProjectAdded pour gérer l'événement ProjectAdded d'un objet ISharePointProjectService.Pour obtenir un exemple, consultez Comment : créer une extension de projet SharePoint.
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