共用方式為


HOW TO:定義 SharePoint 專案項目類型

如果您要建立自訂 SharePoint 專案項目,請定義專案項目類型。 如需詳細資訊,請參閱定義自訂 SharePoint 專案項目類型

若要定義專案項目類型

  1. 建立類別庫專案。

  2. 加入下列組件的參考:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. 建立實作 ISharePointProjectItemTypeProvider 介面的類別。

  4. 將下列屬性加入到類別:

  5. InitializeType 方法的實作中,使用 projectItemTypeDefinition 參數的成員來定義專案項目類型的行為。 這個參數是 ISharePointProjectItemTypeDefinition 物件,可用來存取 ISharePointProjectItemEventsISharePointProjectItemFileEvents 介面中定義的事件。 若要存取專案項目類型的特定執行個體,請處理 ISharePointProjectItemEvents 事件,例如 ProjectItemAddedProjectItemInitialized

範例

下列程式碼範例示範如何定義簡單的專案項目類型。 當使用者將此類型的專案項目加入至專案時,該專案項目類型就會將訊息寫入 [輸出] 視窗和 [錯誤清單] 視窗。

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 Extension (VSIX) 套件。 如需詳細資訊,請參閱 部署 Visual Studio 中 SharePoint 工具的擴充功能

請參閱

工作

逐步解說:使用項目範本建立自訂動作專案項目 (第 1 部分)

其他資源

定義自訂 SharePoint 專案項目類型

為 SharePoint 專案項目建立項目範本和專案範本

逐步解說:使用專案範本建立網站欄專案項目 (第 1 部分)

HOW TO:將屬性加入至自訂 SharePoint 專案項目類型

HOW TO:將捷徑功能表項目加入至自訂 SharePoint 專案項目類型