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 |
---|---|
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 Projekt-vorbildliche Kernkomponenten. |
|
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");
}
}
Dieses Beispiel setzt Folgendes voraus:
Eine Erweiterung des SharePoint-Projektsystems mit einem Verweis auf die Assembly EnvDTE.dll.Weitere Informationen finden Sie unter Erweitern des SharePoint-Projektsystems.
Code, in dem die projectService_ProjectAdded-Methode registriert ist, um das ProjectAdded-Ereignis eines ISharePointProjectService-Objekts zu behandeln.Ein Beispiel finden Sie unter Gewusst wie: Erstellen einer SharePoint-Projekterweiterung.
Siehe auch
Konzepte
Verwenden des SharePoint-Projektdiensts
Gewusst wie: Abrufen des SharePoint-Projektdiensts
Übersicht über das Programmiermodell von Erweiterungen für SharePoint-Tools