IVsDataDefaultObject 인터페이스
DDEX 지원 엔터티는 기본 구현을 나타냅니다.
네임스페이스: Microsoft.VisualStudio.Data.Core
어셈블리: Microsoft.VisualStudio.Data.Core(Microsoft.VisualStudio.Data.Core.dll)
구문
‘선언
Public Interface IVsDataDefaultObject
public interface IVsDataDefaultObject
public interface class IVsDataDefaultObject
type IVsDataDefaultObject = interface end
public interface IVsDataDefaultObject
설명
DDEX 클라이언트 DDEX 런타임 호출의 인스턴스를 만들 때 DDEX는 특정 공급자에 대 한 엔터티를 지원, 엔터티를 지 원하는 경우 인스턴스 작성 및 반환 되는 여부를 확인 하 고 공급자를 쿼리 합니다. 엔터티 공급자를 지원 하지 않는 경우 기본적으로 호출에서 예외를 throw 하거나 반환 nullNull 참조(Visual Basic의 경우 Nothing)코드 경로에 따라. 그러나 경우에 따라서는 DDEX 지원 엔터티의 소유자 DDEX 공급자를 따라서 오류 조건을 방지 자체 구현을 제공 하지 않는 경우 클라이언트에 제공 하 여 적절 한 기본 구현을 해야 합니다.
적용에서 한 예로 들 수 있는 IVsDataConnectionUIConnector 엔터티를 지원 합니다. 이 지원 엔터티 데이터 연결에서 데이터 연결 대화 상자와 같은 UI의 컨텍스트를 열 수 호출 되는 단일 메서드를 포함 합니다. 데이터 대상 연결이 있는지 확인 하 고 새 데이터를 생성 하는 메시지를 찾을 수 없는 경우 저장 등의 일반적인 사용이 지원 엔터티 추가 동작을 추가 하려면입니다. 그러나 적당 한 기본값이 정상적으로 연결 하 고 아무것도 특별 하지 단순히입니다. 이 기본 구현을 제공 하 여 클라이언트 코드에 더 이상 공급자 하지 나이 지원 엔터티를 구현 하지 않는 경우 별도로 처리 해야 하거나 자체 대체, 기본 구현을 포함 해야 하지 때문 간소화할 수 없습니다.
적절 한 기본 구현을 포함 DDEX 지원 엔터티에 포함 될는 DataDefaultObjectAttribute 형식 지원 엔터티를 나타내는 특성입니다. 이 특성이이 인터페이스를 구현 하는 기본 클래스를 식별 합니다. 공급자 구현이 가능 하면 클라이언트에서 요청한 경우 DDEX 런타임 기본 클래스의 인스턴스를 만듭니다. 이 인터페이스의 목적은 DDEX 런타임을 사용 하 고 객체의 주어진된 인스턴스에 여부를 확인 하려면 클라이언트가 기본 구현입니다.
IVsDataDefaultObject 인터페이스입니다 주로 관심을 플랫폼 extender DDEX, 즉, 이러한 서비스 및 지원을 추가 DDEX 엔터티 만들기.
예제
다음 코드 정의를 표시는 IVsDataConnectionUIConnector 기본 개체 특성을 선언 하는 엔터티를 지원 합니다. 이 기본 개체의 구현에서이 옵니다.
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();
}
}