IVsDataClientObject<T> 接口

表示与基础提供程序对象进行交互的客户端包装对象。

命名空间:  Microsoft.VisualStudio.Data.Core
程序集:  Microsoft.VisualStudio.Data.Core(在 Microsoft.VisualStudio.Data.Core.dll 中)

语法

声明
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 不支持泛型类型或方法。

类型参数

  • T
    参数的类型。

IVsDataClientObject<T> 类型公开以下成员。

方法

  名称 说明
公共方法 Initialize 初始化与基础提供程序对象实现的客户端对象。

页首

备注

当DDEX客户端调用DDEX运行时创建DDEX的实例时支持特定提供程序的实体,提供程序对象通常会创建并返回直接写到客户端。在这种情况下,客户端具有一个直接处理到提供程序的实现。有时,DDEX的所有者支持实体可能需要定义支持实体的附加或修改的行为,这些行为与客户端以便满足客户期望后,而不将在提供程序编写器的额外开销。

IVsDataCommand 支持实体,此要求的最常见示例随附DDEX连接服务的形式。IVsDataConnection的目标,DDEX连接对象,是将该客户端要求的开销确保连接是由另一个客户端是当前打开而不是使用中,但是,同时无需担心这些问题在提供程序端。因此,特定连接服务可能没有客户端对象与它执行额外的逻辑确保连接已打开且正确共享在多个客户端。此实现包装基础提供程序对象和自动提供给客户端在DDEX运行时。

DDEX支持预期位置DDEX运行时返回客户端在提供程序创建的包装对象支持实体包括在表示支持实体的类型的 DataClientObjectAttribute 属性的实体。此特性标识实现此接口的包装选件类。当需要由客户端,DDEX运行时首先创建基础提供程序对象的实例然后创建包装选件类的实例。此接口的目的是提供初始化的包装对象的方法将基础提供程序对象。

IVsDataClientObject<T> 接口是主要利益到DDEX平台扩展程序,即,创建额外的DDEX的服务和支持实体。

示例

下面的代码演示定义虚拟支持声明客户端对象属性的实体。此定义由客户端对象的实现后面,添加简单记录对支持实体。

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.");
    }
}

请参见

参考

Microsoft.VisualStudio.Data.Core 命名空间