IVsDataProvider.TryCreateObject<TSite> 메서드 (Guid, Type, TSite)
지정한 DDEX의 인스턴스를 생성 하려고 지정한 사이트 개체와 배치 DDEX 공급자 구현 지정한 DDEX 데이터 소스의 엔터티를 지원 합니다.
네임스페이스: Microsoft.VisualStudio.Data.Core
어셈블리: Microsoft.VisualStudio.Data.Core(Microsoft.VisualStudio.Data.Core.dll)
구문
‘선언
Function TryCreateObject(Of TSite) ( _
source As Guid, _
objType As Type, _
site As TSite _
) As Object
Object TryCreateObject<TSite>(
Guid source,
Type objType,
TSite site
)
generic<typename TSite>
Object^ TryCreateObject(
Guid source,
Type^ objType,
TSite site
)
abstract TryCreateObject :
source:Guid *
objType:Type *
site:'TSite -> Object
JScript에서는 제네릭 형식이나 메서드를 지원하지 않습니다.
Type 매개 변수
- TSite
사이트입니다.
매개 변수
- source
형식: System.Guid
DDEX 데이터 소스 식별자 또는 Empty 없음 특정 데이터 원본에 대 한.
- objType
형식: System.Type
DDEX 지원 엔티티 유형입니다.
- site
형식: TSite
새 DDEX 지원 엔터티 사이트 해야 하는 개체의 인스턴스.
반환 값
형식: System.Object
엔터티의 인스턴스 DDEX 공급자에서 지 원하는 경우 지정한 사이트 개체와 배치 DDEX 공급자에 의해 구현 된 지정한 DDEX 지원. 그렇지 않으면 nullNull 참조(Visual Basic의 경우 Nothing).
예외
예외 | 조건 |
---|---|
ArgumentNullException | objType 매개 변수가 nullNull 참조(Visual Basic의 경우 Nothing)입니다. |
[DataProviderException] | 지원 엔터티의 새 인스턴스 인스턴스화 여부 방식으로 예외를 발생 한 CreateInstance DDEX 공급자 또는 리플렉션을 통해 호출 CreateObject 또는 CreateObject 메서드 구현이 나 구현의 (있는 경우) 기본 또는 클라이언트 개체를 만들지 못했습니다. |
설명
이 메서드가 지정한 DDEX 지원 엔터티 형식의 인스턴스를 생성 하는 다양 한 단계를 수행 합니다.
레지스트리 검사
이 지원 엔터티에 대 한 자세한 내용은 레지스트리를 검사 하 여 메서드를 시작 합니다.지원 엔터티 형식과 일치 하는 레지스트리 키에 대 한 공급자의 SupportedObjects 키 아래에 보입니다.비어 있지 않은 DDEX 데이터 소스 메서드에 전달 된 경우 또한이 DDEX 데이터 원본에 대 한 하위 키가 찾습니다.두 키가 있으면 기본 키의 값을 검색 합니다.키의 값이 아닌 이면-nullNull 참조(Visual Basic의 경우 Nothing) 비어 있지 않은 해당 지원 엔터티를 구현 하는 클래스의 형식 이름 값으로 가정 합니다.그런 한정 CodeBase 값으로 시작 하는 정보를 검색 및이 경우 nullNull 참조(Visual Basic의 경우 Nothing)는 어셈블리 값입니다.CodeBase 값에 등록 된 형식이 들어 있는 어셈블리의 정규화 된 경로입니다.어셈블리 값 있는 및 공용 언어 런타임 (CLR) 로드 하는 어셈블리의 정규화 된 이름입니다.
지원 엔터티 자료에서 상속 하는 경우 IVsDataSupport 인터페이스를 위해 XML 스트림을 반환 하 되, 특정 지원 엔터티는 기본 구현에 전달 될 수 있는 XML 파일의 위치를 알 수 있는 추가 값에 대 한 메서드를 찾습니다.예를 들어 수은 DataObjectSupport 표준 DDEX 프레임 워크 어셈블리에 정의 된 클래스.메서드는 먼저 XmlFile 값을 포함 하거나 디스크에서 XML 파일의 정규화 된 이름이 아닐 수 있습니다 찾습니다.이 값이 있으면 메서드가 XmlFile 정규화 되지 않은 값의 경로 포함할 수 있는 XmlPath 값을 찾습니다.경로 파일 이름을 분리 동일한 경로 위치에 XML 파일의 지역화 된 버전을 저장 하는 경우에 중요 합니다.XmlFile 값이 없으면 메서드는 XML 어셈블리에서 포함 리소스의 이름을 식별 하는 XmlResource 값을 찾습니다.그런 다음 한정 정보에는 XmlCodeBase 값으로 시작 하는 모양 및이 경우 nullNull 참조(Visual Basic의 경우 Nothing), 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 는 하지 않았을.다른 예외에 대 한 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>();
}
}
.NET Framework 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.