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


Activator.CreateComInstanceFrom Метод

Определение

Создает экземпляр COM-объекта, имя которого указано.

Перегрузки

CreateComInstanceFrom(String, String)

Создает экземпляр COM-объекта, имя которого указано с помощью именованного файла сборки и конструктора без параметров.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Создает экземпляр COM-объекта, имя которого указано с помощью именованного файла сборки и конструктора без параметров.

CreateComInstanceFrom(String, String)

Создает экземпляр COM-объекта, имя которого указано с помощью именованного файла сборки и конструктора без параметров.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName);
static member CreateComInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String) As ObjectHandle

Параметры

assemblyName
String

Имя файла, содержащего сборку, в которой выполняется поиск типа с именем typeName.

typeName
String

Имя типа для создания экземпляра.

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

Дескриптор, который должен быть раскрыт для доступа к только что созданному объекту или null для Nullable<T> экземпляров.

Исключения

typeName или assemblyNamenull.

Экземпляр нельзя создать с помощью COM.

-или-

typeName не найден в assemblyName.

Не найден соответствующий конструктор.

assemblyName не найден или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

Не удается создать экземпляр абстрактного класса.

-или-

Этот элемент был вызван с помощью механизма последней привязки.

Вызывающий объект не может предоставлять атрибуты активации для объекта, который не наследуется от MarshalByRefObject.

assemblyName — пустая строка ("").

Комментарии

Используйте метод ObjectHandle.Unwrap для распаковки возвращаемого значения.

Атрибут System.Runtime.InteropServices.ComVisibleAttribute со значением true должен применяться явным образом или по умолчанию к типу COM, чтобы метод CreateComInstanceFrom может создать экземпляр этого типа; в противном случае возникает TypeLoadException.

Сведения о других исключениях, которые могут быть вызваны методами, см. в разделе "Исключения" Assembly.LoadFrom и методов CreateInstance.

Заметка

Начиная с .NET Framework 2.0, этот метод можно использовать для создания неопубликованных типов, если вызывающий объект был предоставлен ReflectionPermission с флагом ReflectionPermissionFlag.RestrictedMemberAccess, и если набор предоставления сборки, содержащей типы неопубликованных, ограничен набором предоставления вызывающего объекта или подмножеством. (См. вопросы безопасности для отражения.) Чтобы использовать эту функцию, приложение должно использовать .NET Framework 3.5 или более поздней версии.

Применяется к

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Создает экземпляр COM-объекта, имя которого указано с помощью именованного файла сборки и конструктора без параметров.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member CreateComInstanceFrom : string * string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As ObjectHandle

Параметры

assemblyName
String

Имя файла, содержащего сборку, в которой выполняется поиск типа с именем typeName.

typeName
String

Имя типа для создания экземпляра.

hashValue
Byte[]

Значение вычисляемого хэш-кода.

hashAlgorithm
AssemblyHashAlgorithm

Хэш-алгоритм, используемый для хэширования файлов и создания строгого имени.

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

Дескриптор, который должен быть раскрыт для доступа к только что созданному объекту или null для Nullable<T> экземпляров.

Исключения

typeName или assemblyNamenull.

assemblyName — пустая строка ("").

Сборка или модуль была загружена дважды с двумя разными доказательствами.

-или-

assemblyName длиннее, чем заданная системой максимальная длина.

assemblyName не найден или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

assemblyName найден, но не может быть загружен.

assemblyName не является допустимой сборкой.

База кода, которая не начинается с "file://", была указана без обязательных WebPermission.

Экземпляр нельзя создать с помощью COM.

-или-

typeName не найден в assemblyName.

Не найден соответствующий конструктор.

Невозможно создать экземпляр абстрактного класса.

-или-

Этот элемент был вызван с помощью механизма последней привязки.

Вызывающий объект не может предоставлять атрибуты активации для объекта, который не наследуется от MarshalByRefObject.

Комментарии

Используйте метод ObjectHandle.Unwrap для распаковки возвращаемого значения.

Атрибут System.Runtime.InteropServices.ComVisibleAttribute со значением true должен применяться явным образом или по умолчанию к типу COM, чтобы метод CreateComInstanceFrom может создать экземпляр этого типа; в противном случае возникает TypeLoadException.

Сведения о других исключениях, которые могут быть вызваны методами, см. в разделе "Исключения" Assembly.LoadFrom и методов CreateInstance.

Заметка

Начиная с .NET Framework 2.0, этот метод можно использовать для создания неопубликованных типов, если вызывающий объект был предоставлен ReflectionPermission с флагом ReflectionPermissionFlag.RestrictedMemberAccess, и если набор предоставления сборки, содержащей типы неопубликованных, ограничен набором предоставления вызывающего объекта или подмножеством. (См. вопросы безопасности для отражения.) Чтобы использовать эту функцию, приложение должно использовать .NET Framework 3.5 или более поздней версии.

Применяется к