Compartilhar via


Classe DataDefaultObjectAttribute

Especifica que uma entidade suporte de DDEX tem uma implementação padrão que deve ser retornado quando um provedor não fornecer uma implementação.

Hierarquia de herança

System.Object
  System.Attribute
    Microsoft.VisualStudio.Data.Core.DataDefaultObjectAttribute

Namespace:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (em Microsoft.VisualStudio.Data.Core.dll)

Sintaxe

'Declaração
<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

O tipo DataDefaultObjectAttribute expõe os membros a seguir.

Construtores

  Nome Descrição
Método público DataDefaultObjectAttribute Inicializa uma nova instância da classe de DataDefaultObjectAttribute , usando a ID da classe especificada

Superior

Propriedades

  Nome Descrição
Propriedade pública ClassId Obtém a identificação de classe que identifica o tipo padrão da classe de objeto.
Propriedade pública TypeId Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.)

Superior

Métodos

  Nome Descrição
Método público Equals Infraestrutura. Retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público GetHashCode Retorna o código hash para essa instância. (Herdado de Attribute.)
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público IsDefaultAttribute Quando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.)
Método público Match Quando substituído em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)

Superior

Implementações explícitas da interface

  Nome Descrição
Implementação explícita da interfaceMétodo particular _Attribute.GetIDsOfNames Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfo Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfoCount Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.Invoke Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.)

Superior

Comentários

Quando um cliente de DDEX chama o tempo de execução de DDEX para criar uma instância de uma entidade suporte de DDEX para um provedor específico, o provedor ser consultado para determinar se ele suporta a entidade, e, em caso afirmativo, uma instância é criada e retornada.Se o provedor não oferece suporte a entidade chamada por padrão, o gera uma exceção ou retorna nulluma referência nula (Nothing no Visual Basic), dependendo do caminho de código.Em o entanto, em alguns casos, os proprietários de entidade suporte de DDEX podem ter uma implementação padrão que desejem razoável para fornecer aos clientes quando um provedor de DDEX não oferece sua própria implementação, evitando assim a condição de erro.

Um exemplo de isso é a prática a entidade de suporte de IVsDataConnectionUIConnector .Este objeto de suporte contém um único método que é chamado para abrir uma conexão de dados de um contexto de interface do usuário, como uma caixa de diálogo de conexão de dados.O uso típico da entidade de suporte é adicionar o comportamento adicionais, como verificar a existência de destino de conexão de dados e solicitar para criar um novo armazenamento de dados se não for encontrado.Em o entanto, uma opção razoável é simplesmente abrir a conexão e normalmente não fazer nada especial.Se essa implementação padrão é fornecida, o código do cliente é simplificado porque ele não precisa separada manipular o caso em que o provedor faz ou não implementa a entidade de suporte, ou precisará fornecer com sua própria implementação padrão, reserva.

As entidades de suporte de DDEX que têm uma implementação padrão razoável devem incluir o atributo no tipo que representa a entidade de suporte.O atributo deve incluir um valor para a propriedade de ClassId , e o valor GUID deve ser válido que representa uma identificação de classe registrada no ambiente do Visual Studio.Finalmente, a classe identificada por ID da classe deve ser uma classe gerenciada que implementa a interface de IVsDataDefaultObject .Quando as solicitações de cliente a criação de uma instância da classe com a identificação especificado, o tempo de execução de DDEX criarão essa instância se nenhuma implementação do provedor está disponível.A implementação padrão é passado de volta para o cliente.

O atributo de DataDefaultObjectAttribute primeiro é de interesse para extensores da plataforma de DDEX, isto é, os que criam entidades adicionais de assistências e suporte de DDEX.

Exemplos

O código a seguir mostra a definição de entidade suporte de IVsDataConnectionUIConnector que declara um atributo de objeto padrão.A definição é seguido pela implementação de esse objeto padrão.

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

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Data.Core