Compartir a través de


IVsDataProviderObjectFactory (Interfaz)

Proporciona la capacidad de crear implementaciones de proveedor de DDEX de entidades admiten.

Espacio de nombres:  Microsoft.VisualStudio.Data.Core
Ensamblado:  Microsoft.VisualStudio.Data.Core (en Microsoft.VisualStudio.Data.Core.dll)

Sintaxis

'Declaración
Public Interface IVsDataProviderObjectFactory
public interface IVsDataProviderObjectFactory
public interface class IVsDataProviderObjectFactory
type IVsDataProviderObjectFactory =  interface end
public interface IVsDataProviderObjectFactory

El tipo IVsDataProviderObjectFactory expone los siguientes miembros.

Métodos

  Nombre Descripción
Método público CreateObject Crea una instancia de la entidad especificada de soporte de DDEX implementada por el proveedor de DDEX.
Método público GetAssembly Resuelve una cadena proveedor- específica del ensamblado en su representación correspondiente de Assembly .
Método público GetType Resuelve un nombre de tipo proveedor- concreto en su representación correspondiente de Type .

Arriba

Comentarios

Un proveedor de DDEX consta de un conjunto de implementaciones específicas de las entidades de soporte de DDEX que pueden ser utilizadas por los clientes para invocar el comportamiento proveedor- concreto para una acción determinada, conocido. A lo sumo el fundamental level, entidades admiten de DDEX es representado por las interfaces, que podrán mostrar otros tipos de entidades, como contenido XML. Esta interfaz representa el generador para todas las entidades globales de soporte de DDEX y deben implementar todos los proveedores de DDEX. También representa la resolución de tipo personalizado y ensamblado que puede utilizar cuando ejecuta las entidades admiten que especifican esta información como cadenas que deben resolverse.

Un proveedor de DDEX puede implementar esta interfaz implícita o explícitamente. Una implementación implícita se produce cuando el proveedor de DDEX es registro basado y una implementación integrada clave del Registro se lee de la interfaz de los diferentes que describen cómo crear entidades admiten. Una implementación explícita se produce cuando el proveedor de DDEX es paquete basado y una instancia de esta interfaz se muestra como un servicio en la implementación del paquete de Visual Studio del proveedor. El primero es el más ágil; este último es más flexible. El primero es el método preferido a menos que se requiera el segundo.

Ejemplos

El código siguiente muestra cómo un proveedor paquete- basado de DDEX puede implementar esta interfaz con compatibilidad para algunas entidades de soporte de. Utiliza la implementación base de la interfaz que se define en el ensamblado de 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() {}

}

Vea también

Referencia

Microsoft.VisualStudio.Data.Core (Espacio de nombres)