Compartir a través de


Cómo: Definir un tipo de elemento de proyecto de SharePoint

Defina un tipo de elemento de proyecto cuando desee crear un elemento de proyecto personalizado de SharePoint.Para obtener más información, vea Definir tipos de elementos de proyecto personalizados de SharePoint.

Para definir un tipo de elemento de proyecto

  1. Cree un proyecto de biblioteca de clases

  2. Agregue referencias a los siguientes ensamblados:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Cree una clase que implemente la interfaz ISharePointProjectItemTypeProvider.

  4. Agregue a la clase los atributos siguientes:

    • System.ComponentModel.Composition.ExportAttribute.Este atributo permite que Visual Studio detecte y cargue la implementación de ISharePointProjectItemTypeProvider.Pase el tipo ISharePointProjectItemTypeProvider al constructor del atributo.

    • SharePointProjectItemTypeAttribute.En una definición de tipo de elemento de proyecto, este atributo especifica el identificador de cadena del nuevo elemento.Se recomienda usar el formato nombre de compañía.nombre de característica para garantizar que todos los elementos de proyecto tengan un nombre único.

    • SharePointProjectItemIconAttribute.Este atributo especifica el icono para mostrar de este elemento de proyecto en el Explorador de soluciones.Este atributo es opcional; si no lo aplica a su clase, Visual Studio muestra un icono predeterminado para el elemento de proyecto.Si establece este atributo, pase el nombre completo de un icono o mapa de bits que esté incrustado en el ensamblado.

  5. En su implementación del método InitializeType, utilice miembros del parámetro projectItemTypeDefinition para definir el comportamiento del tipo de elemento de proyecto.Este parámetro es un objeto ISharePointProjectItemTypeDefinition que proporciona acceso a los eventos definidos en las interfaces ISharePointProjectItemEvents e ISharePointProjectItemFileEvents.Para obtener acceso a una instancia concreta del tipo de elemento de proyecto, controle los eventos de ISharePointProjectItemEvents, como ProjectItemAdded y ProjectItemInitialized.

Ejemplo

En el ejemplo de código siguiente, se muestra cómo definir un tipo de elemento de proyecto simple.Este tipo de elemento de proyecto escribe un mensaje en la Ventana de salida y en la ventana Lista de errores cuando un usuario agrega un elemento de proyecto de este tipo a un proyecto.

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);
        }
    }
}

En este ejemplo, se usa el servicio de proyecto de SharePoint para escribir el mensaje en la Ventana de salida y en la ventana Lista de errores.Para obtener más información, vea Utilizar el servicio de proyecto de SharePoint.

Compilar el código

Para este ejemplo se requieren referencias a los siguientes ensamblados:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Implementar el elemento de proyecto

Para permitir que otros desarrolladores usen el elemento de proyecto, cree una plantilla de proyecto o una plantilla de elemento de proyecto.Para obtener más información, vea Crear plantillas de elemento y plantillas de proyecto para los elementos de proyecto de SharePoint.

Para implementar el elemento de proyecto, cree un paquete de extensión (VSIX) de Visual Studio para el ensamblado, la plantilla y cualquier otro archivo que desee distribuir con el elemento de proyecto.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.

Vea también

Tareas

Tutorial: Crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 1

Tutorial: Crear un elemento de proyecto de columna de sitio con una plantilla de proyecto, parte 1

Conceptos

Definir tipos de elementos de proyecto personalizados de SharePoint

Crear plantillas de elemento y plantillas de proyecto para los elementos de proyecto de SharePoint

Cómo: Agregar una propiedad a un tipo de elemento de proyecto personalizado de SharePoint

Cómo: Agregar un elemento de menú contextual a un tipo de elemento de proyecto personalizado de SharePoint