Condividi tramite


Interfaccia IVsDataProviderObjectFactory

Consente di creare le implementazioni del provider di DDEX di supporto.

Spazio dei nomi:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (in Microsoft.VisualStudio.Data.Core.dll)

Sintassi

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

Il tipo IVsDataProviderObjectFactory espone i seguenti membri.

Metodi

  Nome Descrizione
Metodo pubblico CreateObject Crea un'istanza dell'entità specificata di supporto di DDEX implementato dal provider di DDEX.
Metodo pubblico GetAssembly Risolve una stringa specifica dell'assembly nella relativa rappresentazione corrispondente Assembly.
Metodo pubblico GetType Risolve un nome di tipo specifico nella relativa rappresentazione corrispondente Type.

In alto

Note

Un provider di DDEX è costituito da un set di implementazioni specifiche del supporto tecnico DDEX che possono essere utilizzate da client per richiamare il comportamento specifico per un'azione particolare e noto.Al livello sottostante, entità di supporto di DDEX è rappresentato dalle interfacce, che può quindi creare altri tipi di entità, come contenuto XML.Questa interfaccia rappresenta la factory per tutte le entità globali di supporto di DDEX e deve essere implementata da tutti i provider di DDEX.Rappresenta anche la risoluzione personalizzata dell'assembly e del tipo che è possibile utilizzare quando si utilizzano le entità di supporto che specificano queste informazioni come stringhe che devono essere risolti.

Un provider di DDEX può implementare questa interfaccia in modo implicito o esplicito.Un'implementazione implicita si verifica quando il provider di DDEX è il Registro di sistema basato su un'implementazione incorporata dell'interfaccia legge le varie chiavi del Registro di sistema che descrivono come creare le entità di supporto.Un'implementazione esplicita si verifica quando il provider di DDEX pacchetto è basato su un'istanza di questa interfaccia viene fornita come un servizio sull'implementazione del pacchetto Visual Studio provider.Il precedente è il più Agile, l'ultimo è più flessibile.Il primo è l'approccio consigliato a meno che quest'ultimo non sia necessario.

Esempi

Il codice seguente viene illustrato come un provider basato su pacchetto di DDEX può implementare questa interfaccia con supporto per alcune delle entità standard di supporto.Utilizza l'implementazione di base dell'interfaccia definita nell'assembly del framework di 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() {}

}

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Data.Core