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


Практическое руководство. Определение типа элементов проектов SharePoint

Если необходимо создать пользовательский элемент проекта SharePoint, требуется определить тип проектного элемента.Дополнительные сведения см. в разделе Определение пользовательских типов элементов проектов SharePoint.

Определение типа элементов проектов

  1. Создайте проект библиотеки классов.

  2. Добавьте ссылки на следующие сборки:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Создайте класс, реализующий интерфейс ISharePointProjectItemTypeProvider.

  4. Добавьте следующие атрибуты к классу:

    • System.ComponentModel.Composition.ExportAttribute.Этот атрибут позволяет Visual Studio находить и загружать пользовательскую реализацию ISharePointProjectItemTypeProvider.Передайте конструктору этого атрибута тип ISharePointProjectItemTypeProvider;

    • SharePointProjectItemTypeAttribute.В определении типа элементов проектов этот атрибут задает идентификатор строки для нового элемента проекта.Чтобы все элементы проекта имели уникальные имена, рекомендуется использовать формат название_компании.имя_компонента.

    • SharePointProjectItemIconAttribute.Этот атрибут задает значок, отображаемый для данного элемента проекта в Обозревателе решений.Данный атрибут является необязательным; если не задать его для класса, в Visual Studio будет отображаться значок по умолчанию для элемента проекта.При задании этого атрибута передайте ему полное имя значка или растрового изображения, которые внедрены в сборку.

  5. В текущей реализации метода InitializeType с помощью членов параметра projectItemTypeDefinition определите поведение типа проектного элемента.Этот параметр представляет собой объект ISharePointProjectItemTypeDefinition, который предоставляет доступ к событиям, определенным в интерфейсах ISharePointProjectItemEvents и ISharePointProjectItemFileEvents.Для осуществления доступа к конкретному экземпляру типа проектного элемента необходимо обработать события ISharePointProjectItemEvents, такие как ProjectItemAdded и ProjectItemInitialized.

Пример

В следующем примере кода показано определение простого типа проектного элемента.Когда пользователь добавляет в проект элемент проекта этого типа, этот тип проектного элемента записывает сообщение в окна Выходные данные и Список ошибок.

Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint

Namespace Contoso.ExampleProjectItemType

    <Export(GetType(ISharePointProjectItemTypeProvider))> _
    <SharePointProjectItemType("Contoso.ExampleProjectItemType")> _
    <SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")> _
    Friend Class ExampleProjectItemType
        Implements ISharePointProjectItemTypeProvider

        Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
            Implements ISharePointProjectItemTypeProvider.InitializeType
            projectItemTypeDefinition.Name = "ExampleProjectItemType"
            projectItemTypeDefinition.SupportedDeploymentScopes = _
                SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
            projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
            AddHandler projectItemTypeDefinition.ProjectItemAdded, AddressOf ProjectItemAdded
        End Sub

        Private Sub ProjectItemAdded(ByVal Sender As Object, ByVal e As SharePointProjectItemEventArgs)
            Dim Message As String = String.Format("An example project item named {0} was added to the {1} project.", _
                e.ProjectItem.Name, e.ProjectItem.Project.Name)
            e.ProjectItem.Project.ProjectService.Logger.WriteLine(Message, LogCategory.Message)
        End Sub
    End Class
End Namespace
using System;
using Microsoft.VisualStudio.SharePoint;
using System.ComponentModel.Composition;

namespace Contoso.ExampleProjectItemType
{
    [Export(typeof(ISharePointProjectItemTypeProvider))]
    [SharePointProjectItemType("Contoso.ExampleProjectItemType")]
    [SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")]
    internal class ExampleProjectItemType : ISharePointProjectItemTypeProvider
    {
        public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
        {
            projectItemTypeDefinition.Name = "ExampleProjectItemType";
            projectItemTypeDefinition.SupportedDeploymentScopes =
                SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
            projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
            projectItemTypeDefinition.ProjectItemAdded += projectItemTypeDefinition_ProjectItemAdded;
        }

        void projectItemTypeDefinition_ProjectItemAdded(object sender, SharePointProjectItemEventArgs e)
        {
            string message = String.Format("An example project item named {0} was added to the {1} project.",
                e.ProjectItem.Name, e.ProjectItem.Project.Name);
            e.ProjectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
        }
    }
}

В этом примере служба проекта SharePoint используется для записи сообщения в окна Выходные данные и Список ошибок.Дополнительные сведения см. в разделе Использование службы проектов SharePoint.

Компиляция кода

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

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Развертывание элемента проекта

Чтобы другие разработчики также могли использовать созданный элемент проекта, создайте шаблон проекта или шаблон элемента проекта.Дополнительные сведения см. в разделе Создание шаблонов элементов и проектов для элементов проектов SharePoint.

Чтобы развернуть элемент проекта, создайте пакет расширения Visual Studio (VSIX) для сборки, шаблона и всех остальных файлов, которые предполагается распространять с элементом проекта.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.

См. также

Задачи

Пошаговое руководство. Создание элемента проекта настраиваемого действия с помощью шаблона элемента, часть 1

Пошаговое руководство. Создание элемента проекта столбца сайта с помощью шаблона элемента, часть 1

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

Определение пользовательских типов элементов проектов SharePoint

Создание шаблонов элементов и проектов для элементов проектов SharePoint

Практическое руководство. Добавление свойства в пользовательский тип элемента проекта SharePoint

Практическое руководство. Добавление пункта контекстного меню в пользовательский тип элемента проекта SharePoint