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> 형식에서는 다음과 같은 멤버를 노출합니다.

메서드

  이름 설명
Public 메서드 Initialize 기본 공급자 개체 구현에는 클라이언트 개체를 초기화합니다.

위쪽

설명

DDEX 런타임에서 특정 공급자에 대 한 지원 DDEX 엔터티의 인스턴스를 만들려면 DDEX 클라이언트를 호출 하면 공급자 개체 일반적으로 만들어 직접 클라이언트에 반환 합니다. 이 경우 클라이언트 공급자의 구현에 대 한 직접 핸들이 있습니다. 경우에 따라서는 DDEX 지원 엔터티의 소유자 공급자 작성기에 추가 부담을 추가 하지 않고 클라이언트의 기대를 충족 하기 위해 클라이언트와 상호 작용할 때 지원 엔터티를 추가 또는 수정 된 동작을 정의 합니다. 좋습니다.

이 요구 사항의 일반적인 예 DDEX 연결 서비스와 같은 형태의 IVsDataCommand 엔터티를 지원 합니다. 하나의 목적은 IVsDataConnection, DDEX 연결 개체는 클라이언트 쪽에서 연결이 열려 있는지 확인 하 고 다른 클라이언트가 사용 중이 아닌 필요한 오버 헤드를 최소화 하면서 동시에 공급자 측에서 이러한 문제에 대 한 관심 필요가 없습니다. 따라서 주어진된 연결 서비스 연결 열기 및 여러 클라이언트 간에 공유 제대로 있는지 확인 하는 추가 논리를 수행 하는 클라이언트 개체 관련 있을 수 있습니다. 이 구현 내부 공급자 개체를 래핑하고 DDEX 런타임에서 자동으로 클라이언트에 제공 합니다.

DDEX 런타임 클라이언트 공급자의 지원 엔터티를 생성할 래퍼 개체를 반환 하려고 DDEX 지원 엔터티에 포함 된 DataClientObjectAttribute 지원 엔터티를 나타내는 형식 특성. 이 특성은이 인터페이스를 구현 하는 래퍼 클래스를 식별 합니다. 클라이언트에서 요청한 경우 DDEX 런타임 먼저 내부 공급자 개체의 인스턴스를 만들어야 하 고 래퍼 클래스의 인스턴스를 만듭니다. 이 인터페이스의 래퍼 개체를 원본으로 사용 하는 공급자 개체를 초기화 하는 방법을 제공입니다.

IVsDataClientObject<T> 인터페이스입니다 주로 관심을 플랫폼 extender 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 네임스페이스