Condividi tramite


Metodo IVsDataProviderObjectFactory.CreateObject

Crea un'istanza dell'entità specificata di supporto di DDEX implementato dal provider di DDEX.

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

Sintassi

'Dichiarazione
Function CreateObject ( _
    objType As Type _
) As Object
Object CreateObject(
    Type objType
)
Object^ CreateObject(
    Type^ objType
)
abstract CreateObject : 
        objType:Type -> Object
function CreateObject(
    objType : Type
) : Object

Parametri

  • objType
    Tipo: Type

    Un tipo di entità di supporto di DDEX.

Valore restituito

Tipo: Object
Un'istanza dell'entità specificata di supporto di DDEX implementato dal provider di DDEX, se il provider di DDEX è supportata; in caso contrario, nullriferimento null (Nothing in Visual Basic).

Eccezioni

Eccezione Condizione
ArgumentNullException

Il parametro objType è nullriferimento null (Nothing in Visual Basic).

Note

Probabilmente il metodo più importante nella piattaforma di DDEX, questo metodo rappresenta il centro del modello di estensibilità, consentendo un tipo astratto (ad esempio, un'interfaccia o una classe di base) da passare al provider e il recupero dell'implementazione di un provider di questo tipo. Un provider implementa questo metodo per restituire le entità di primo livello di supporto, ovvero, in genere quelle create direttamente da un client anziché indirettamente dall'eseguire una query su una connessione dati da un servizio o creare un tipo a cui viene fatto riferimento da un file XML di supporto di dati.

Esempi

Il codice seguente viene illustrato come implementare questo metodo per creare le diverse entità standard di supporto. L'esempio eredita dalla classe DataProviderObjectFactory del framework, che fornisce un'implementazione predefinita dei metodi GetAssembly e GetType.

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

}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

IVsDataProviderObjectFactory Interfaccia

Spazio dei nomi Microsoft.VisualStudio.Data.Core