Compartir a través de


DataDefaultObjectAttribute (Clase)

Especifica que una entidad de soporte de DDEX tiene una implementación predeterminada que debe ser devuelta cuando un proveedor no proporciona una implementación.

Jerarquía de herencia

Object
  Attribute
    Microsoft.VisualStudio.Data.Core.DataDefaultObjectAttribute

Espacio de nombres:  Microsoft.VisualStudio.Data.Core
Ensamblado:  Microsoft.VisualStudio.Data.Core (en Microsoft.VisualStudio.Data.Core.dll)

Sintaxis

'Declaración
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Interface)> _
Public NotInheritable Class DataDefaultObjectAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)]
public sealed class DataDefaultObjectAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Interface)]
public ref class DataDefaultObjectAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)>]
type DataDefaultObjectAttribute =  
    class 
        inherit Attribute 
    end
public final class DataDefaultObjectAttribute extends Attribute

El tipo DataDefaultObjectAttribute expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público DataDefaultObjectAttribute Inicializa una nueva instancia de la clase de DataDefaultObjectAttribute , con el identificador especificado de la clase

Arriba

Propiedades

  Nombre Descripción
Propiedad pública ClassId Obtiene el id. de la clase que identifica el tipo predeterminado de la clase de objeto.
Propiedad pública TypeId Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).

Arriba

Métodos

  Nombre Descripción
Método público Equals Infraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método público GetHashCode Devuelve el código hash de esta instancia. (Se hereda de Attribute).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público IsDefaultAttribute Cuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método público Match Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfacesMétodo privado System#Runtime#InteropServices#_Attribute#GetIDsOfNames Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado System#Runtime#InteropServices#_Attribute#GetTypeInfo Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado System#Runtime#InteropServices#_Attribute#Invoke Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).

Arriba

Comentarios

Cuando un cliente de DDEX llama al runtime de DDEX para crear una instancia de una entidad de soporte de DDEX para un proveedor determinado, el proveedor se consulta para determinar si admite la entidad, y, si lo hace, se crea y se devuelve una instancia. Si el proveedor no admite la entidad, llamada de forma predeterminada produce una excepción o devuelve nullreferencia null (Nothing en Visual Basic), dependiendo de la ruta de acceso del código. Sin embargo, en algunos casos, los propietarios de la entidad de compatibilidad de DDEX pueden tener una implementación predeterminada razonable que deseen proporcionar a los clientes cuando un proveedor de DDEX no proporciona su propia implementación, así se evita la condición de error.

Un ejemplo de esto es en la práctica la entidad de compatibilidad de IVsDataConnectionUIConnector . Esta entidad admiten contiene un método denominado para abrir una conexión de datos de un contexto de la interfaz de usuario, como un cuadro de diálogo de conexión de datos. El uso típico de esta entidad de soporte es agregar comportamiento adicional, como comprobar la existencia del destino de la conexión de datos y pedir para crear un nuevo almacén si no se encuentra. Sin embargo, valor predeterminado razonable es abrir simplemente la conexión normalmente y no hacer nada. Si se proporciona esta implementación predeterminada, se simplifica el código de cliente porque no más las necesidades de controlar por separado los casos en los que el proveedor hace o no implementa la entidad admiten, no necesita proporcionar su propio reserva, implementación predeterminada.

DDEX admiten las entidades que tienen una implementación predeterminada razonable deben incluir este atributo del tipo que representa la entidad admiten. El atributo debe incluir un valor para la propiedad de ClassId , y el valor debe ser un GUID válido que representa un id. de la clase registrada en el entorno de Visual Studio. Finalmente, la clase identificada por el id. de la clase debe ser una clase administrada que implementa la interfaz de IVsDataDefaultObject . Cuando un cliente solicita la creación de una instancia de la clase con el id. especificado, el runtime de DDEX creará esta instancia si no hay ninguna implementación del proveedor disponible. La implementación predeterminada se pasa de nuevo al cliente.

El atributo de DataDefaultObjectAttribute sirve principalmente de interés a los extensores de la plataforma de DDEX, es decir, los que crean las entidades adicionales de los servicios y atención de DDEX.

Ejemplos

El código siguiente se muestra la definición de la entidad de compatibilidad de IVsDataConnectionUIConnector que declara un atributo de objeto predeterminado. La definición va seguida de la implementación de este objeto predeterminado.

using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;

[DataDefaultObject("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
public interface IVsDataConnectionUIConnector
{
    void Connect(IVsDataConnection connection);
}

[Guid("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
internal class DefaultConnectionUIConnector
    : IVsDataConnectionUIConnector,
      IVsDataDefaultObject
{
    public void Connect(IVsDataConnection connection)
    {
        if (connection == null)
        {
            throw new ArgumentNullException("connection");
        }
        connection.Open();
    }
}

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.Data.Core (Espacio de nombres)