Поделиться через


IVsDataProviderObjectFactory.CreateObject - метод

Создает экземпляр заданной сущности поддержки DDEX, которая реализуется поставщиком DDEX.

Пространство имен:  Microsoft.VisualStudio.Data.Core
Сборка:  Microsoft.VisualStudio.Data.Core (в Microsoft.VisualStudio.Data.Core.dll)

Синтаксис

'Декларация
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

Параметры

  • objType
    Тип: System.Type
    Тип сущности поддержки DDEX.

Возвращаемое значение

Тип: System.Object
Экземпляр заданной сущности поддержки DDEX, которая реализуется поставщиком DDEX, если поставщик поддерживает DDEX него; в противном случае – значение nullссылка NULL (Nothing в Visual Basic).

Исключения

Исключение Условие
ArgumentNullException

Значение параметра objType — nullссылка NULL (Nothing в Visual Basic).

Заметки

Возможно, самым важным методом в платформе DDEX этот метод представляющий ядро модели расширяемости, позволяя абстрактный тип (например, интерфейса или базового класса), передаваемый поставщику и принимающее задний реализацию поставщика данного типа.Поставщик реализует этот метод для возврата сущности верхнего уровня, то есть они обычно создатьые непосредственно клиентом в отличие от косвенно путем запроса подключение к данным для службы или создать тип, на который ссылается из XML-файла поддержки данных.

Примеры

В следующем примере кода показано, как реализовать этот метод, чтобы создать несколько стандартных сущностей поддержки.Пример наследует от класса DataProviderObjectFactory платформы, который предоставляет реализацию по умолчанию для методов GetType и GetAssembly.

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

}

Безопасность платформы .NET Framework

См. также

Ссылки

IVsDataProviderObjectFactory Интерфейс

Microsoft.VisualStudio.Data.Core - пространство имен