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: TypeUn 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
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.