다음을 통해 공유


방법: SharePoint 프로젝트 항목 형식 정의

사용자 지정 SharePoint 프로젝트 항목을 만들려는 경우 프로젝트 항목 형식을 정의합니다. 자세한 내용은 사용자 지정 SharePoint 프로젝트 항목 형식 정의를 참조하십시오.

프로젝트 항목 형식을 정의하려면

  1. 클래스 라이브러리 프로젝트를 만듭니다.

  2. 다음 어셈블리에 대한 참조를 추가합니다.

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. ISharePointProjectItemTypeProvider 인터페이스를 구현하는 클래스를 만듭니다.

  4. 클래스에 다음 특성을 추가합니다.

    • System.ComponentModel.Composition.ExportAttribute. 이 특성을 사용하면 Visual Studio에서 ISharePointProjectItemTypeProvider 구현을 찾아 로드할 수 있습니다. ISharePointProjectItemTypeProvider 형식을 특성 생성자에 전달합니다.

    • SharePointProjectItemTypeAttribute. 프로젝트 항목 형식 정의에서 이 특성은 새 프로젝트 항목의 문자열 식별자를 지정합니다. company name.feature name 형식을 사용하여 모든 프로젝트 항목에 고유한 이름을 지정하는 것이 좋습니다.

    • SharePointProjectItemIconAttribute. 이 특성은 솔루션 탐색기에서 이 프로젝트 항목에 대해 표시할 아이콘을 지정합니다. 이 특성은 선택 사항이므로 클래스에 적용되지 않는 경우 프로젝트 항목에 대해 기본 아이콘이 표시됩니다. 이 특성을 설정하는 경우 어셈블리에 포함된 아이콘이나 비트맵의 정규화된 이름을 전달합니다.

  5. InitializeType 메서드 구현에서 projectItemTypeDefinition 매개 변수의 멤버를 사용하여 프로젝트 항목 형식의 동작을 정의합니다. 이 매개 변수는 ISharePointProjectItemEventsISharePointProjectItemFileEvents 인터페이스에 정의된 이벤트에 대한 액세스를 제공하는 ISharePointProjectItemTypeDefinition 개체입니다. 프로젝트 항목 형식의 특정 인스턴스에 액세스하려면 ProjectItemAddedProjectItemInitialized 등과 같은 ISharePointProjectItemEvents 이벤트를 처리합니다.

예제

다음 코드 예제에서는 간단한 프로젝트 항목 형식을 정의하는 방법을 보여 줍니다. 이 프로젝트 항목 형식에서는 사용자가 프로젝트에 이 형식의 프로젝트 항목을 추가할 때 출력 창과 오류 목록 창에 메시지를 씁니다.

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 프로젝트 항목에 대한 항목 템플릿 및 프로젝트 템플릿 만들기를 참조하십시오.

프로젝트 항목을 배포하려면 어셈블리, 템플릿 및 프로젝트 항목과 함께 배포할 다른 모든 파일에 대한 VSIX(Visual Studio Extension) 패키지를 만듭니다. 자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.

참고 항목

작업

연습: 항목 템플릿을 사용하여 사용자 지정 작업 프로젝트 항목 만들기, 1부

기타 리소스

사용자 지정 SharePoint 프로젝트 항목 형식 정의

SharePoint 프로젝트 항목에 대한 항목 템플릿 및 프로젝트 템플릿 만들기

연습: 프로젝트 템플릿을 사용하여 사이트 열 프로젝트 항목 만들기, 1부

방법: 사용자 지정 SharePoint 프로젝트 항목 형식에 속성 추가

방법: 사용자 지정 SharePoint 프로젝트 항목 형식에 바로 가기 메뉴 항목 추가