이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
Visual Studio 2017을 사용하는 것이 좋습니다.

IVsDataProvider.TryCreateObject<TSite> 메서드 (Guid, Type, TSite)

지정한 DDEX의 인스턴스를 만들려고 시도 지정 DDEX 데이터 소스의 지정 된 사이트 개체를 사용 하 여 배치 DDEX 공급자에 의해 구현 되는 엔터티를 지원 합니다.

네임스페이스:  Microsoft.VisualStudio.Data.Core
어셈블리:  Microsoft.VisualStudio.Data.Core(Microsoft.VisualStudio.Data.Core.dll)

Object TryCreateObject<TSite>(
	Guid source,
	Type objType,
	TSite site
)

형식 매개 변수

TSite

사이트입니다.

매개 변수

source
형식: Guid

DDEX 데이터 소스 식별자 또는 Empty 특정 데이터 소스에 대 한.

objType
형식: Type

DDEX 지원 엔터티의 형식입니다.

site
형식: TSite

새 DDEX 지원 엔터티 사이트 해야 하는 개체의 인스턴스.

반환 값

형식: Object
지정 된 엔터티의 DDEX 지원. DDEX 공급자가 지원할 경우 지정 된 사이트 개체를 사용 하 여 배치 DDEX 공급자에 의해 구현 되는 인스턴스 그렇지 않으면 null.

예외조건
ArgumentNullException

objType 매개 변수가 null입니다.

DataProviderException

지원 엔터티의 새 인스턴스를 인스턴스화할 수 여, 예외가 발생 했습니다 있는 CreateInstance DDEX 공급자 또는 리플렉션을 통해 호출 CreateObject 또는 CreateObject 메서드 구현이 나 (있는 경우) 기본 또는 클라이언트 개체 구현을 만들지 못했습니다.

이 메서드는 DDEX 지원 엔터티 형식의 인스턴스를 생성 하는 다양 한 단계를 수행 합니다.

레지스트리 검사

이 지원 엔터티에 대 한 정보에 대 한 레지스트리를 검사 하 여 메서드를 시작 합니다. 지원 엔터티 형식과 일치 하는 레지스트리 키에 대 한 공급자의 SupportedObjects 키를 찾습니다. DDEX 비어 있지 않은 데이터 소스 메서드에 전달 된 경우 또한이 DDEX 데이터 원본에 대 한 하위 키를 찾습니다. 두 키가 없으면 해당 키의 기본값을 검색 합니다. 키의 값이 아닌 경우null 및 지원 엔터티를 구현 하는 클래스의 형식 이름을 가정 합니다. 그런 내용은 CodeBase 값부터 한정 검색 및이 경우 null는 어셈블리 값입니다. CodeBase 값에 등록 된 형식이 포함 된 어셈블리의 정규화 된 경로입니다. 어셈블리 값이 있는 고 공용 언어 런타임 (CLR)에 의해 로드 될 수 있는 어셈블리의 정규화 된 이름입니다.

지원 엔터티 기본에서 상속 하는 경우 IVsDataSupport 인터페이스를 해당 하는 용도로 xml 스트림을 반환, 수 지원 특정 엔터티의 기본 구현에 전달 될 수 있는 XML 파일의 위치를 설명 하는 추가 값을 찾습니다. DataObjectSupport 표준 DDEX 프레임 워크 어셈블리에 정의 되어 있는 클래스입니다. 메서드는 디스크의 XML 파일의 정규화 된 이름이 아닐 수도 있는 XmlFile 값 먼저 찾습니다. 이 값이 있으면 XmlFile 정규화 되지 않은 값의 경로 포함할 수 있는 XmlPath 값에 찾습니다. 경로 파일 이름 분리 하 여이 XML 파일의 지역화 된 버전의 동일한 경로 위치에 배치 하는 경우 중요 합니다. XmlFile 값이 없으면 XML 어셈블리에서 포함 리소스의 이름을 식별 하는 XmlResource 값을 찾습니다. 그런 다음 해당 정보를 시작 하는 XmlCodeBase 값을 찾습니다 및이 경우 null에 XmlAssembly 값. XmlCodeBase 값이 지정된 된 리소스를 포함 하는 어셈블리의 정규화 된 경로입니다. XmlAssembly 값이 있는 고 CLR에 의해 로드 될 수 있는 어셈블리의 정규화 된 이름입니다.

이 시점에서 그대로 DDEX 지원 엔터티의 인스턴스를 만들려면 레지스트리에 충분 한 정보가 없는 것을 레지스트리 검사 단계를 건너뜁니다. 이 경우 메서드는 전환의 명시적 구현에는 IVsDataSourceSpecializer 또는 IVsDataProviderObjectFactory 인터페이스 DDEX 공급자에 의해 구현 되는 경우. 메서드는 해당 어셈블리를 로드 하는 그렇지 않으면 코드 베이스 또는 전체 이름 (순서 대로)이 어셈블리에서 형식을 가져옵니다. 이 프로세스는 적절 한 형식을 찾지 못하면 한 DataProviderException 이 throw 됩니다.

마지막으로, 형식의 인스턴스가 만들어집니다. 지원 엔터티 기본에서 상속 하는 경우 IVsDataSupport 인터페이스와 XML 파일 위치에 대 한 자세한 내용은 공급자에 의해 등록 된,이 정보는 형식 생성자에 인수로 전달 됩니다. 이 정보는 XML 파일 이름 및 경로 (두 문자열) 또는 XML 리소스 이름을 전달 하며 해결 Assembly 개체 (문자열 및 Assembly 개체). 후자의 경우에는 DataProviderException 어셈블리를 로드할 수 없는 경우에 throw 됩니다. 형식 인스턴스를 만든 또는 만들어진된 형식 지원이 필요한 엔터티 형식을 구현 하지 않는 경우 다른 오류가 발생 하는 경우는 DataProviderException 이 throw 됩니다.

Specializer 소스 나 공급자 개체 팩터리

레지스트리 검사 (있는 경우) 지원 엔터티의 소스 specializer DDEX 공급자의 인스턴스를 만들 수 있는 충분 한 정보가 찾지 또는 (패키지 기반 공급자)에 대 한 개체 팩터리 CreateObject 메서드를 호출 합니다. DDEX 비어 있지 않은 데이터 소스는이 메서드에 전달 되 면 공급자의 소스 specializer (있는 경우)가 먼저 호출 됩니다. 이 메서드에서 throw 하는 경우는 NotImplementedException 없는 새 인스턴스를 반환 하거나 개도 모두 무시 하 고 있으면 공급자 개체 팩터리를 호출 NotImplementedException throw 된. 다른 모든 예외는 DataProviderException 이 throw 됩니다.

기본 인스턴스 만들기

이 지점에서 만들어진 개체가 DDEX 공급자 지원 엔터티를 구현 하지 않는 것입니다. 그러나 지원 엔터티 기본 개체 구현을 정의 기본 개체의 인스턴스가 만들어집니다.

참고참고

DDEX Visual Studio 2005에서 기본 개체 구현을 지원 하지 않으므로 기본 개체가 생성 됩니다.

사이팅에 대해서 개체

모든 새로 만든 DDEX 지원 엔터티 인스턴스가 위치할 수이 방법을 사용 하는 세 개의 표준 사이트 개체를 사용 하 여. 이러한 개체는 다음과 같습니다: 전역 서비스 공급자 개체의 IVsDataProvider 개체를 만든 및 IVsDataSource DDEX 비어 있지 않은 데이터 소스를 제공한 경우, 만들어진 특정 DDEX 데이터 소스를 나타내는 개체입니다. 인스턴스가 새로 생성된 된 인스턴스를 구현 하는 경우에 배치 되는 IVsDataSiteableObject<T> 제네릭 형식 사용 하 여 인터페이스 IServiceProvider, IVsDataProvider, 또는 IVsDataSource각각.

이러한 표준 사이트 개체 다음 사용자 지정 사이트 개체는 호출자에 의해 전달 된 경우 새 인스턴스는 위치할 사용자 지정 개체를 사용 하 여 구현 하는 경우는 IVsDataSiteableObject<T> 인터페이스입니다.

클라이언트 개체 만들기

DDEX 지원 엔터티 만들기의 마지막 단계는 하나를 사용 하 여 엔터티의 정의 된 경우 클라이언트 래퍼 개체를 생성 해야 합니다. 지원 엔터티 형식 인스턴스에 대 한 첫 번째 검사를 통해 이루어집니다 DataClientObjectAttribute. 이 인스턴스가 새 공급자 개체와 연결된 된 클래스 ID를 만듭니다에서 식별 되는 개체의 인스턴스는 클라이언트 개체에 전달 됩니다. 클라이언트 개체를 만든 후 기본 공급자 개체가 제공 된 표준 및 사용자 지정 사이트 개체의 동일한 세트와 배치는 있습니다.

다음 코드에서는 표준 지원 엔터티 중 하나를 만들려면이 메서드를 호출 하는 방법을 보여 줍니다.

using System;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services.SupportEntities;

public class DDEX_IVsDataProviderExample10
{
    public static IVsDataConnectionProperties CreateConnectionProperties(
        IVsDataProvider provider)
    {
        return provider.TryCreateObject<IVsDataConnectionProperties>();
    }
}

표시: