Преобразование между типами системы проектов 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 |
Соответствующие типы в объектных моделях автоматизации и интеграции |
---|---|
или Любой интерфейс в объектной модели интеграции Visual Studio, реализуемый базовым COM-объектом проекта.К таким интерфейсам относятся Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, Microsoft.VisualStudio.Shell.Interop.IVsProject (и производные от него интерфейсы) и Microsoft.VisualStudio.Shell.Interop.IVsBuildPropertyStorage.Список главных интерфейсов, реализуемых в проектах, см. в разделе Компоненты ядра модели проекта. |
|
или Значение типа 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, которое содержит ссылку на сборку EnvDTE.dll.Дополнительные сведения см. в разделе Расширение системы проектов SharePoint.
Код, регистрирующий метод projectService_ProjectAdded, для обработки события ProjectAdded объекта ISharePointProjectService.Пример см. в разделе Практическое руководство. Создание расширения проекта SharePoint.
См. также
Основные понятия
Использование службы проектов SharePoint
Практическое руководство. Извлечение службы проектов SharePoint