Conversione tra tipi di sistemi di progetto SharePoint e altri tipi di progetto Visual Studio
In alcuni casi si dispone di un oggetto nel sistema di progetto SharePoint e si desidera utilizzare le funzionalità di un oggetto corrispondente nel modello a oggetti di automazione o di integrazione di Visual Studio o viceversa. In questi casi, è possibile utilizzare il metodo Convert<TInput, TOutput> del servizio di progetto SharePoint per convertire l'oggetto in un oggetto di un altro modello a oggetti.
Si consideri ad esempio il caso in cui si dispone di un oggetto ISharePointProject ma si desidera utilizzare metodi disponibili soltanto in un oggetto EnvDTE.Project o Microsoft.VisualStudio.Shell.Interop.IVsProject. In tal caso, è possibile utilizzare il metodo Convert<TInput, TOutput> per convertire l'oggetto ISharePointProject in un oggetto EnvDTE.Project o Microsoft.VisualStudio.Shell.Interop.IVsProject.
Per ulteriori informazioni sui modelli a oggetti di automazione e di integrazione di Visual Studio, vedere Cenni preliminari sul modello di programmazione delle estensioni degli strumenti di SharePoint.
Tipi di conversioni
Nella tabella seguente vengono elencati i tipi che questo metodo consente di convertire tra il sistema di progetto SharePoint e gli altri modelli a oggetti di Visual Studio.
Tipo di sistema di progetto SharePoint |
Tipi corrispondenti nei modelli a oggetti di automazione e di integrazione |
---|---|
oppure Qualsiasi interfaccia nel modello a oggetti di integrazione di Visual Studio che viene implementato dall'oggetto COM sottostante per il progetto. Queste interfacce comprendono Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (o un'interfaccia derivata) e Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage. Per un elenco delle interfacce principali che vengono implementate dai progetti, vedere Project Model Core Components. |
|
oppure Valore UInt32 (anche denominato VSITEMID) che consente di identificare il membro del progetto nell'oggetto Microsoft.VisualStudio.Shell.Interop.IVsHierarchy in cui è contenuto. Questo valore può essere passato al parametro itemid di alcuni metodi Microsoft.VisualStudio.Shell.Interop.IVsHierarchy. |
Esempio
Nell'esempio di codice seguente viene illustrato come utilizzare il metodo Convert<TInput, TOutput> per convertire un oggetto ISharePointProject in un oggetto 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");
}
}
Per questo esempio è necessario quanto segue.
Un'estensione del sistema del progetto di SharePoint che disponga di un riferimento all'assembly EnvDTE.dll. Per ulteriori informazioni, vedere Estensione del sistema di progetto SharePoint.
Codice che registra il metodoprojectService_ProjectAdded per gestire l'evento ProjectAdded di un oggetto ISharePointProjectService. Per un esempio, vedere Procedura: creare un'estensione di progetto SharePoint.
Vedere anche
Concetti
Utilizzo del servizio di progetto SharePoint
Cenni preliminari sul modello di programmazione delle estensioni degli strumenti di SharePoint