다음을 통해 공유


IVsDataProviderObjectFactory 인터페이스

DDEX 공급자 구현을 지원 엔터티를 만들 수가 있습니다.

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

구문

‘선언
Public Interface IVsDataProviderObjectFactory
public interface IVsDataProviderObjectFactory
public interface class IVsDataProviderObjectFactory
type IVsDataProviderObjectFactory =  interface end
public interface IVsDataProviderObjectFactory

IVsDataProviderObjectFactory 형식에서는 다음과 같은 멤버를 노출합니다.

메서드

  이름 설명
Public 메서드 CreateObject DDEX 공급자에 의해 구현 된 지정한 DDEX 지원 엔터티 인스턴스를 만듭니다.
Public 메서드 GetAssembly 어셈블리 공급자별 문자열은 해당 해결 Assembly 표현 합니다.
Public 메서드 GetType 해당 공급자별 형식 이름이 해결 Type 표현 합니다.

위쪽

설명

DDEX 공급자는 잘 알려진 특정 작업에 대 한 공급자별 동작을 호출 하 여 클라이언트 사용할 수 DDEX 지원 엔터티의 특정 구현 구성 됩니다. 가장 기본적인 수준에서 다른 유형의 엔티티 등 XML 내용 다음 발생할 수 있습니다 인터페이스 DDEX 지원 엔터티 표시 됩니다. 이 인터페이스는 모든 전역 DDEX 지원 엔터티에 대 한 팩터리를 나타냅니다 및 DDEX 모든 공급자에 의해 구현 되어야 합니다. 또한이 정보를 확인 해야 하는 문자열로 지정 지원 엔터티를 작업할 때 사용할 수 있는 어셈블리 확인 하 고 사용자 지정 형식을 나타냅니다.

DDEX 공급자는이 인터페이스는 암시적 또는 명시적으로 구현할 수 있습니다. 암시적 구현을 DDEX 공급자 기반 레지스트리는 인터페이스의 기본 구현을 지원 엔터티를 만드는 방법을 설명 하는 다양 한 레지스트리 키를 읽을 때 발생 합니다. 명시적으로 구현 DDEX 공급자 패키지 기반 서비스로 Visual Studio 패키지의 공급자 구현에서이 인터페이스의 인스턴스 proffered 되어 때 발생 합니다. 전자는 민첩 한 가장입니다. 후자는 가장 융통성이 있습니다. 전자 후자는 필요 하지 않은 경우 기본 설정된 방법입니다.

예제

다음 코드는 패키지 기반 DDEX 공급자가이 인터페이스를 지 원하는 일부 표준 지원 엔터티 구현 하는 방법을 보여 줍니다. DDEX 프레임 워크 어셈블리에 정의 된 인터페이스의 기본 구현을 사용 합니다.

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

internal class MyProviderObjectFactory : DataProviderObjectFactory
{
    public override object CreateObject(Type objType)
    {
        if (objType == null)
        {
            throw new ArgumentNullException("objType");
        }
        if (objType == typeof(IVsDataConnectionProperties))
        {
            return new MyConnectionProperties();
        }
        if (objType == typeof(IVsDataConnectionSupport))
        {
            return new MyConnectionSupport();
        }
        return null;
    }
}

internal class MyConnectionProperties : DataConnectionProperties
{
}

internal class MyConnectionSupport : IVsDataConnectionSupport
{
    // Implement the interface methods 

    public void Initialize(object providerObj) {}
    public bool Open(bool doPromptCheck) {return true;}
    public void Close() {}
    public string ConnectionString { get {return "";} set {} }
    public int ConnectionTimeout { get {return 0;} set {} }
    public DataConnectionState State { get {return DataConnectionState.Closed;} }
    public object ProviderObject { get {return null;} }

    // Inherited from System.IServiceProvider  
    public Object GetService(Type serviceType) {return null;}

    // Inherited from System.IDisposable 
    public void Dispose() {}

}

참고 항목

참조

Microsoft.VisualStudio.Data.Core 네임스페이스