Поделиться через


Преобразование между типами системы проектов SharePoint и другими типами проектов Visual Studio

В некоторых случаях разработчику, у которого имеется объект в системе проектов SharePoint, могут потребоваться функции соответствующего объекта в объектной модели автоматизации или интеграции Visual Studio, либо наоборот.В этом случае для преобразования объекта в объект другой объектной модели можно воспользоваться методом Convert<TInput, TOutput> службы проекта SharePoint.

Например, у разработчика может быть объект ISharePointProject, но ему могут требоваться методы, которые доступны только в объекте EnvDTE.Project или Microsoft.VisualStudio.Shell.Interop.IVsProject.В этом случае можно с помощью метода Convert<TInput, TOutput> преобразовать объект ISharePointProject в EnvDTE.Project или Microsoft.VisualStudio.Shell.Interop.IVsProject.

Сведения об объектной модели автоматизации и интеграции Visual Studio см. в разделе Обзор модели программирования расширений средств SharePoint.

Типы преобразования

В следующей таблице перечислены типы, которые можно преобразовывать с помощью этого метода из системы проектов SharePoint в другую объектную модель Visual Studio и наоборот.

Тип системы проектов SharePoint

Соответствующие типы в объектных моделях автоматизации и интеграции

ISharePointProject

EnvDTE.Project

или

Любой интерфейс в объектной модели интеграции Visual Studio, реализуемый базовым COM-объектом проекта.К таким интерфейсам относятся Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (и производные от него интерфейсы) и Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage.Список главных интерфейсов, реализуемых в проектах, см. в разделе Компоненты ядра модели проекта.

IMappedFolder

ISharePointProjectItem

ISharePointProjectItemFile

ISharePointProjectFeature

ISharePointProjectFeatureResourceFile

ISharePointProjectPackage

EnvDTE.ProjectItem

или

Значение типа UInt32 (также называемое VSITEMID), которое определяет элемент проекта в содержащем его объекте Microsoft.VisualStudio.Shell.Interop.IVsHierarchy.Это значение может быть передано параметру itemid или каким-либо методам Microsoft.VisualStudio.Shell.Interop.IVsHierarchy.

Пример

В следующем примере кода показано, как с помощью метода Convert<TInput, TOutput> преобразовать объект ISharePointProject в объект 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");
    }
}

Для этого примера необходимо следующее.

См. также

Основные понятия

Использование службы проектов SharePoint

Практическое руководство. Извлечение службы проектов SharePoint

Обзор модели программирования расширений средств SharePoint