Interface IVsDataClientObject<T>
Representa um objeto invólucro de cliente que interage com um objeto subjacente do provedor.
Namespace: Microsoft.VisualStudio.Data.Core
Assembly: Microsoft.VisualStudio.Data.Core (em Microsoft.VisualStudio.Data.Core.dll)
Sintaxe
'Declaração
Public Interface IVsDataClientObject(Of T As Class)
public interface IVsDataClientObject<T>
where T : class
generic<typename T>
where T : ref class
public interface class IVsDataClientObject
type IVsDataClientObject<'T when 'T : not struct> = interface end
JScript não oferece suporte a tipos ou métodos genéricos.
Parâmetros de tipo
- T
O tipo de parâmetro.
O tipo IVsDataClientObject<T> expõe os membros a seguir.
Métodos
Nome | Descrição | |
---|---|---|
Initialize | Inicializa o objeto cliente com a implementação do objeto subjacente do provedor. |
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 objeto do provedor normalmente é criado e retornado diretamente para o cliente.Em esse caso, o cliente tem um identificador direta a implementação do provedor.Em alguns casos, o proprietário de entidade suporte de DDEX pode querer definir o comportamento adicional ou modificado de entidade de suporte para interagir com o cliente para localizar expectativas de cliente sem adicionar a carga adicional no gravador do provedor.
O exemplo mais comum de esse requisito vem na forma de serviços de conexão de DDEX como a entidade de suporte de IVsDataCommand .Um objetivo de IVsDataConnection, o objeto de conexão de DDEX, minimizar a sobrecarga é necessária no lado do cliente para garantir que a conexão está atualmente aberto e não em uso por outro cliente, mas ao mesmo tempo para eliminar a necessidade de se preocupar com esses problemas no lado do provedor.Portanto, um determinado serviço de conexão pode ter um cliente objeto associado com ele executa lógica adicional garantindo que a conexão é aberta e compartilhado entre vários clientes corretamente.Essa implementação envolve o objeto subjacente do provedor e é fornecida automaticamente para o cliente em tempo de execução de DDEX.
Entidades de suporte de DDEX que pretendem ter o retorno de tempo de execução de DDEX um objeto invólucro de cliente na criação de entidade de suporte do provedor incluir o atributo de DataClientObjectAttribute no tipo que representa a entidade de suporte.Esse atributo identifica uma classe envoltório que implementa a interface.Quando solicitado por um cliente, o tempo de execução de DDEX primeiro criará uma instância do objeto subjacente do provedor e irá criar uma instância da classe envoltório.O objetivo de esta interface é fornecer um método para inicializar o objeto invólucro com o objeto subjacente do provedor.
A interface de IVsDataClientObject<T> 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 uma entidade fictícia de suporte que declara um atributo de objetos de cliente.Esta definição é seguido pela implementação do objeto de cliente, que adiciona o log simples de chamadas para a entidade de suporte.
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Data.Core;
[DataClientObject("1520C77F-09AF-40b4-B1FE-53C30A177C59")]
public interface IVsDataSupportEntity
{
void DoSomething();
}
[Guid("1520C77F-09AF-40b4-B1FE-53C30A177C59")]
internal class ClientSupportEntity : IVsDataSupportEntity,
IVsDataClientObject<IVsDataSupportEntity>
{
private IVsDataSupportEntity _providerObj;
public void Initialize(IVsDataSupportEntity providerObj)
{
if (providerObj == null)
{
throw new ArgumentNullException("providerObj");
}
_providerObj = providerObj;
}
public void DoSomething()
{
Trace.WriteLine("DoSomething started.");
_providerObj.DoSomething();
Trace.WriteLine("DoSomething finished.");
}
}