Freigeben über


IVsDataProviderObjectFactory-Schnittstelle

Stellt die Möglichkeit, DDEX-Anbieterimplementierungen von Stützentitäten zu erstellen.

Namespace:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (in Microsoft.VisualStudio.Data.Core.dll)

Syntax

'Declaration
Public Interface IVsDataProviderObjectFactory
public interface IVsDataProviderObjectFactory
public interface class IVsDataProviderObjectFactory
type IVsDataProviderObjectFactory =  interface end
public interface IVsDataProviderObjectFactory

Der IVsDataProviderObjectFactory-Typ macht die folgenden Member verfügbar.

Methoden

  Name Beschreibung
Öffentliche Methode CreateObject Erstellt eine Instanz der angegebenen DDEX-Stützentität, die vom DDEX-Anbieter implementiert wird.
Öffentliche Methode GetAssembly Löst eine anbieterspezifische Assemblyzeichenfolge zu der entsprechenden Assembly Darstellung auf.
Öffentliche Methode GetType Löst einen anbieterspezifischen Typnamen zu der entsprechenden Type Darstellung auf.

Zum Seitenanfang

Hinweise

Ein DDEX-Anbieter besteht aus einem Satz von bestimmten Implementierungen von DDEX-Stützentitäten, die von Clients verwendet werden können, um anbieterspezifisches Verhalten für eine bestimmte, bekannte Aktion aufruft. Höchstens werden die auf Projektmappenebene basieren, DDEX-Stützentitäten über Schnittstellen, die sich dann andere Typen Entitäten erzeugen, wie XML-Inhalt dargestellt. Diese Schnittstelle stellt die Factory für alle globalen DDEX-Stützentitäten dar und von allen DDEX-Anbietern implementiert werden. Sie stellt auch benutzerdefinierte Typ- und Assemblyauflösung dar, die Sie verwenden können, wenn, die für Stützentitäten, die diese Informationen als Zeichenfolgen angeben, die behoben werden müssen.

Ein DDEX-Anbieter implementiert werden diese Schnittstelle implizit oder explizit. Eine implizite Implementierung tritt auf, wenn der DDEX-Anbieter basierte die Registrierung ist und die integrierte Implementierung der Schnittstelle verschiedene Registrierungsschlüssel liest, die beschreiben, wie die Stützentitäten erstellt. Eine explizite Implementierung tritt auf, wenn der DDEX-Anbieter basierte das Paket ist und eine Instanz dieser Schnittstelle als Dienst auf der das Visual Studio-Paketimplementierung des Anbieters angeboten wird. Das erste ist das agilste; letztere Version ist die flexibelsten. Das frühere ist der bevorzugte Ansatz, es sei denn, das zweite erforderlich ist.

Beispiele

Der folgende Code zeigt, wie ein Paket-basierter DDEX-Anbieter diese Schnittstelle mit Unterstützung für einige implementieren kann die Standardstützentitäten. Er verwendet die Basisimplementierung der Schnittstelle, die in der DDEX-Frameworkassembly definiert ist.

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() {}

}

Siehe auch

Referenz

Microsoft.VisualStudio.Data.Core-Namespace