Condividi tramite


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

ISharePointProject

EnvDTE.Project

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.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

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:

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