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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.