Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Associating Custom Data with SharePoint Tools Extensions

 

Puede agregar datos personalizados a ciertos objetos en las extensiones de herramientas de SharePoint. Esto es útil cuando se tienen datos en una parte de la extensión a la que desea tener acceso más adelante desde otro código de la extensión. En lugar de implementar una manera personalizada para almacenar y tener acceso a los datos, puede asociar los datos a un objeto de la extensión y recuperar después los datos del mismo objeto.

Agregar datos personalizados a los objetos también es útil cuando se desea conservar datos pertinentes para un elemento específico en Visual Studio. Las extensiones de herramientas de SharePoint simplemente se cargan una vez en Visual Studio, de modo que la extensión podría funcionar en cualquier momento con varios elementos diferentes (como proyectos, elementos de proyecto o nodos Server Explorer). Si tiene datos personalizados que solo atañen a un elemento específico, puede agregarlos al objeto que representa ese elemento.

Al agregar datos personalizados a los objetos de las extensiones de herramientas de SharePoint, los datos no se conservan. Los datos están disponibles solo durante la vida útil del objeto. Una vez que el objeto es reclamado por la recolección de elementos no utilizados, se pierden los datos.

En las extensiones del sistema de proyectos de SharePoint, también puede guardar los datos de cadena que se conservan una vez descargada una extensión. Para obtener más información, vea Saving Data in Extensions of the SharePoint Project System.

Para agregar datos personalizados a un objeto de extensión de herramientas de SharePoint, obtenga la propiedad Annotations del objeto al que desea agregar los datos y utilice el método IAnnotationDictionary.Add para agregar los datos al objeto.

Para recuperar datos personalizados de un objeto de una extensión de herramientas de SharePoint, obtenga la propiedad Annotations del objeto y utilice uno de los métodos siguientes:

  • IAnnotationDictionary.TryGetValue. Este método devuelve true si existe el objeto de datos, o false si no existe. Puede utilizar este método para recuperar instancias de tipos de valor o tipos de referencia.

  • IAnnotationDictionary.GetValue. Este método devuelve el objeto de datos si existe o null si no existe. Solo puede utilizar este método para recuperar instancias de tipos de referencia.

En el siguiente ejemplo de código se determina si un objeto de datos concreto ya está asociado a un elemento de proyecto. Si el objeto de datos aún no está asociado al elemento de proyecto, el código agrega el objeto a la propiedad Annotations del elemento de proyecto. Para consultar este ejemplo en el contexto de un ejemplo mayor, vea How to: Add a Property to a Custom SharePoint Project Item Type.

void projectItemTypeDefinition_ProjectItemPropertiesRequested(object sender, 
    SharePointProjectItemPropertiesRequestedEventArgs e)
{
    CustomProperties property;

    // If the properties object already exists, get it from the project item's annotations.
    if (!e.ProjectItem.Annotations.TryGetValue(out property))
    {
        // Otherwise, create a new properties object and add it to the annotations.
        property = new CustomProperties(e.ProjectItem);
        e.ProjectItem.Annotations.Add(property);
    }

    e.PropertySources.Add(property);
}
Mostrar: