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
или assemblyName
null
.
Не найден соответствующий конструктор.
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
или assemblyName
null
.
assemblyName
— пустая строка ("").
Сборка или модуль была загружена дважды с двумя разными доказательствами.
-или-
assemblyName
длиннее, чем заданная системой максимальная длина.
assemblyName
не найден или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.
assemblyName
найден, но не может быть загружен.
assemblyName
не является допустимой сборкой.
База кода, которая не начинается с "file://", была указана без обязательных WebPermission
.
Не найден соответствующий конструктор.
Невозможно создать экземпляр абстрактного класса.
-или-
Этот элемент был вызван с помощью механизма последней привязки.
Вызывающий объект не может предоставлять атрибуты активации для объекта, который не наследуется от 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 или более поздней версии.