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 | |
---|---|---|
DataDefaultObjectAttribute | Inicializa uma nova instância da classe de DataDefaultObjectAttribute , usando a ID da classe especificada |
Superior
Propriedades
Nome | Descrição | |
---|---|---|
ClassId | Obtém a identificação de classe que identifica o tipo padrão da classe de objeto. | |
TypeId | Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.) |
Superior
Métodos
Nome | Descrição | |
---|---|---|
Equals | Infraestrutura. Retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.) | |
GetHashCode | Retorna o código hash para essa instância. (Herdado de Attribute.) | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
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.) | |
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.) | |
ToString | Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.) |
Superior
Implementações explícitas da interface
Nome | Descrição | |
---|---|---|
_Attribute.GetIDsOfNames | Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.) | |
_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.) | |
_Attribute.GetTypeInfoCount | Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.) | |
_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.