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 | |
---|---|---|
![]() |
CreateObject | Erstellt eine Instanz der angegebenen DDEX-Stützentität, die vom DDEX-Anbieter implementiert wird. |
![]() |
GetAssembly | Löst eine anbieterspezifische Assemblyzeichenfolge zu der entsprechenden Assembly Darstellung auf. |
![]() |
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() {}
}