Compartir a través de


IVsDataDefaultObject (Interfaz)

Representa la implementación predeterminada de una entidad de soporte de DDEX.

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

Sintaxis

'Declaración
Public Interface IVsDataDefaultObject
public interface IVsDataDefaultObject
public interface class IVsDataDefaultObject
type IVsDataDefaultObject =  interface end
public interface IVsDataDefaultObject

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 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 ha encontrado. Sin embargo, valor predeterminado razonable es abrir simplemente la conexión normalmente y no hacer nada. Proporcionar 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 esta entidad admiten, no necesita incluir su propio reserva, implementación predeterminada.

DDEX admiten las entidades que tienen una implementación predeterminada razonable deben incluir el atributo de DataDefaultObjectAttribute en el tipo que representa la entidad admiten. Este atributo identifica una clase predeterminada que implementa esta interfaz. Cuando se solicita un cliente, el runtime de DDEX creará una instancia de la clase predeterminada si no hay ninguna implementación del proveedor disponible. El propósito de esta interfaz es permitir que el runtime y los clientes de DDEX para determinar si una instancia determinada de un objeto es una implementación predeterminada.

La interfaz de IVsDataDefaultObject 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. 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();
    }
}

Vea también

Referencia

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