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 Componenti principali del modello di progetto. |
|
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");
}
}
L'esempio presenta i seguenti requisiti:
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
Procedura: recuperare il servizio di progetto SharePoint
Cenni preliminari sul modello di programmazione delle estensioni degli strumenti di SharePoint