Partager via


IVsDataProviderObjectFactory, interface

Permet de créer des implémentations de fournisseur de DDEX des entités de charge.

Espace de noms :  Microsoft.VisualStudio.Data.Core
Assembly :  Microsoft.VisualStudio.Data.Core (dans Microsoft.VisualStudio.Data.Core.dll)

Syntaxe

'Déclaration
Public Interface IVsDataProviderObjectFactory
public interface IVsDataProviderObjectFactory
public interface class IVsDataProviderObjectFactory
type IVsDataProviderObjectFactory =  interface end
public interface IVsDataProviderObjectFactory

Le type IVsDataProviderObjectFactory expose les membres suivants.

Méthodes

  Nom Description
Méthode publique CreateObject Crée une instance de l'entité spécifiée en charge de DDEX implémentée par le fournisseur de DDEX.
Méthode publique GetAssembly Résout une chaîne spécifique au fournisseur d'assembly en sa représentation correspondante d' Assembly .
Méthode publique GetType Résout un type spécifique au fournisseur nom en sa représentation correspondante d' Type .

Début

Notes

Un fournisseur de DDEX se compose d'un ensemble d'implémentations spécifiques des entités de prise en charge de DDEX qui peuvent être utilisées par les clients pour appeler le comportement spécifique au fournisseur pour une action particulière et connue. Au plus le principe fondamental de niveau, entités de prise en charge DDEX sont représentés par les interfaces, qui peuvent ensuite générer d'autres types d'entités, telles que le contenu XML. Cette interface représente la fabrique pour toutes les entités globales de prise en charge DDEX et doit être implémentée par tous les fournisseurs de DDEX. Elle représente également la résolution personnalisée de type et d'assembly que vous pouvez utiliser lorsque vous travaillez avec les entités de charge qui spécifient ces informations en tant que chaînes qui doivent être corrigées.

Un fournisseur de DDEX peut implémenter cette interface implicitement ou explicitement. Une implémentation implicite se produit lorsque le fournisseur de DDEX est basé Registre et une implémentation intégrée clés de Registre de lectures d'interface des différentes qui décrivent comment créer des entités de charge. Une implémentation explicite se produit lorsque le fournisseur de DDEX module est basé et une instance de cette interface est offerte en tant que service sur l'implémentation de package Visual Studio du fournisseur. Le précédent est le plus agile ; ce dernier est plus flexible. Le précédent est l'approche par défaut à moins que ce dernier est requis.

Exemples

Le code suivant montre comment un fournisseur module basé sur DDEX peut implémenter cette interface avec la prise en charge de certains des entités standard de charge. Il utilise l'implémentation de base de l'interface définie dans l'assembly de l'infrastructure 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() {}

}

Voir aussi

Référence

Microsoft.VisualStudio.Data.Core, espace de noms