Freigeben über


Konvertieren zwischen SharePoint-Projektsystemtypen und anderen Visual Studio-Projekttypen

Manchmal benötigen Sie bei der Arbeit mit einem Objekt im SharePoint-Projektsystem unter Umständen die Funktionen eines entsprechenden Objekts im Visual Studio-Automatisierungsobjektmodell oder im Integrationsobjektmodell und umgekehrt. In einem solchen Fall können Sie das Objekt mithilfe der Convert<TInput, TOutput>-Methode des SharePoint-Projektdiensts in ein anderes Objektmodell konvertieren.

Beispiel: Sie verfügen über ein ISharePointProject-Objekt, möchten jedoch Methoden verwenden, die nur für ein EnvDTE.Project-Objekt oder für ein Microsoft.VisualStudio.Shell.Interop.IVsProject-Objekt verfügbar sind. In diesem Fall können Sie ISharePointProject mithilfe der Convert<TInput, TOutput>-Methode zu EnvDTE.Project oder zu Microsoft.VisualStudio.Shell.Interop.IVsProject konvertieren.

Weitere Informationen zum Visual Studio-Automatisierungsobjektmodell und dem Visual Studio-Integrationsobjektmodell finden Sie unter Übersicht über das Programmiermodell von Erweiterungen für SharePoint-Tools.

Konvertierungstypen

In der folgenden Tabelle sind die Typen aufgeführt, die mit dieser Methode zwischen dem SharePoint-Projektsystem und den anderen Visual Studio-Objektmodellen konvertiert werden können.

SharePoint-Projektsystemtyp

Entsprechende Typen im Automatisierungs- und im Integrationsobjektmodell

ISharePointProject

EnvDTE.Project

oder

Jede Schnittstelle im Visual Studio-Integrationsobjektmodell, das vom zugrunde liegende COM-Objekt für das Projekt implementiert wird. Diese Schnittstellen schließen Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (oder eine abgeleitete Schnittstelle) und Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage ein. Eine Liste der wichtigsten Schnittstellen, die von Projekten implementiert werden, finden Sie unter Project Model Core Components.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

oder

Ein UInt32-Wert (auch: VSITEMID) zum Angeben des Projektmembers in Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, in dem er enthalten ist. Dieser Wert kann an den itemid-Parameter einiger Microsoft.VisualStudio.Shell.Interop.IVsHierarchy-Methoden übergeben werden.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit der Convert<TInput, TOutput>-Methode ein ISharePointProject-Objekt in ein EnvDTE.Project konvertiert wird.

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");
    }
}

Für dieses Beispiel benötigen Sie:

Siehe auch

Konzepte

Verwenden des SharePoint-Projektdiensts

Übersicht über das Programmiermodell von Erweiterungen für SharePoint-Tools

Weitere Ressourcen

Gewusst wie: Abrufen des SharePoint-Projektdiensts