System.Runtime.InteropServices Пространство имен

Предоставляет разнообразные члены, поддерживающие COM-взаимодействие и службы вызова платформы. Если вы не знакомы с этими службами, см. раздел Взаимодействие с неуправляемым кодом.

Классы

AllowReversePInvokeCallsAttribute

Позволяет неуправляемому методу вызвать управляемый метод.

AutomationProxyAttribute

Указывает, будет ли выполняться маршалинг типа с использованием маршалера автоматизации или настраиваемого прокси-сервера и заглушки.

BestFitMappingAttribute

Определяет необходимость преобразования символов Юникода в наиболее подходящие символы ANSI.

BStrWrapper

Маршалирует данные типа VT_BSTR из управляемого кода в неуправляемый. Этот класс не наследуется.

ClassInterfaceAttribute

Указывает, какой тип интерфейса класса должен генерироваться для класса, предоставленного модели COM, если интерфейс создан.

CoClassAttribute

Указывает идентификатор компонентного класса, импортированного из библиотеки типов.

CollectionsMarshal

Небезопасный класс, предоставляющий набор методов для доступа к базовым представлениям данных коллекций.

ComAliasNameAttribute

Указывает псевдоним COM для типа параметра или поля.

ComAwareEventInfo

Разрешает регистрацию позднего связывания для обработчика событий.

ComCompatibleVersionAttribute

Показывает клиенту COM, что все классы текущей версии сборки совместимы с классами в более ранней версии сборки.

ComConversionLossAttribute

Показывает, что информация о классе или интерфейсе была потеряна при импортировании из библиотеки типов в сборку.

ComDefaultInterfaceAttribute

Определяет интерфейс по умолчанию, предоставляемый COM. Этот класс не наследуется.

ComEventInterfaceAttribute

Определяет исходный интерфейс и класс, реализующий методы интерфейса событий, созданного при импорте компонентного класса из библиотеки типов COM.

ComEventsHelper

Предоставляет методы, активирующие делегаты .NET для обработки событий, которые нужно добавить или удалить из объектов COM.

COMException

Исключение, которое выдается при возвращении неизвестного значения HRESULT после вызова метода COM.

ComImportAttribute

Указывает, что тип с атрибутом был ранее определен в модели COM.

ComRegisterFunctionAttribute

Задает метод, вызываемый при регистрации сборки для использования из COM. Это позволяет выполнять код, написанный пользователем, в процессе регистрации.

ComSourceInterfacesAttribute

Определяет список интерфейсов, предоставляемых в виде источников событий COM для класса с атрибутом.

ComUnregisterFunctionAttribute

Определяет метод, вызываемый при удалении регистрации сборки, используемой из COM. Это позволяет в процессе удаления регистрации выполнять код, написанный пользователем.

ComVisibleAttribute

Управляет доступностью отдельного управляемого типа или члена либо всех типов в сборки для модели COM.

ComWrappers

Класс для управления оболочками типов COM IUnknown.

CriticalHandle

Представляет класс-оболочку для ресурсов обработчика.

CurrencyWrapper

Инкапсулирует объекты, которые необходимо маршалировать, как VT_CY.

DefaultCharSetAttribute

Определяет значение перечисления CharSet. Этот класс не наследуется.

DefaultDllImportSearchPathsAttribute

Указывает пути, используемые для поиска DLL, предоставляющих вызываемые для платформы функции.

DefaultParameterValueAttribute

Устанавливает значение параметра по умолчанию, которое используется, если параметр вызывается из языка, поддерживающего параметры по умолчанию. Этот класс не наследуется.

DispatchWrapper

Инкапсулирует объекты, которые необходимо маршалировать, как VT_DISPATCH.

DispIdAttribute

Указывает идентификатор диспетчера COM (DISPID) для метода, поля или свойства.

DllImportAttribute

Указывает, что метод с атрибутом передается библиотекой динамической компонентов (DLL) как статическая точка входа.

DynamicInterfaceCastableImplementationAttribute

Атрибут, необходимый для любого типа, возвращаемого GetInterfaceImplementation(RuntimeTypeHandle).

ErrorWrapper

Инкапсулирует объекты, которые необходимо маршалировать, как VT_ERROR.

ExtensibleClassFactory

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

ExternalException

Базовый тип исключений для всех исключений COM-взаимодействия и исключений структурированной обработки исключений (SEH).

FieldOffsetAttribute

Указывает физическое расположение полей в неуправляемом представлении класса или структуры.

GuidAttribute

Предоставляет явный идентификатор Guid в случае, когда использование автоматического идентификатора GUID нежелательно.

HandleCollector

Отслеживает незавершенные обработчики и инициирует сбор мусора при достижении заданного порогового значения.

IDispatchImplAttribute

Указывает, какая реализация IDispatch используется средой CLR при предоставлении COM сдвоенных и диспетчерских интерфейсов.

ImmutableCollectionsMarshal

Небезопасный класс, предоставляющий набор методов для доступа к базовым представлениям данных неизменяемых коллекций.

ImportedFromTypeLibAttribute

Показывает, что определенные в сборке типы были исходно определены в библиотеке типов.

InAttribute

Указывает, что данные необходимо маршалировать из вызывающего в вызываемый объект и не возвращать вызывающему объекту.

InterfaceTypeAttribute

Указывает, является ли интерфейс при предоставлении COM сдвоенным, диспетчерским или только IUnknown.

InvalidComObjectException

Исключение, вызванное использованием недопустимого COM-объекта.

InvalidOleVariantTypeException

Исключение, которое выдается упаковщиком при обнаружении аргумента типа variant, маршалинг которого в управляемый код выполнить невозможно.

LCIDConversionAttribute

Указывает, что неуправляемая подпись метода предполагает наличие параметра идентификатора языкового стандарта LCID.

LibraryImportAttribute

Указывает, что генератор исходного кода должен создать функцию для маршалинга аргументов, а не полагаться на среду выполнения для создания эквивалентной функции маршалинга во время выполнения.

ManagedToNativeComInteropStubAttribute

Обеспечивает поддержку пользовательской настройки заглушек взаимодействия в сценариях с управляемым COM-взаимодействием.

Marshal

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

MarshalAsAttribute

Указывает способ маршалинга данных между управляемым и неуправляемым кодом.

MarshalDirectiveException

Исключение, которое создается модулем упаковки и передачи, когда он встречает неподдерживаемый атрибут MarshalAsAttribute.

MemoryMarshal

Предоставляет методы для взаимодействия с Memory<T>, ReadOnlyMemory<T>, Span<T>и ReadOnlySpan<T>.

NativeLibrary

Предоставляет интерфейсы API для управления собственными библиотеками.

NativeMemory

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

OptionalAttribute

Указывает, что параметр является необязательным.

OutAttribute

Указывает, что данные необходимо маршалировать из вызываемого объекта обратно в вызывающий объект.

PosixSignalContext

Предоставляет данные для PosixSignalRegistration события.

PosixSignalRegistration

Обрабатывает .PosixSignal

PreserveSigAttribute

Указывает, что преобразование сигнатуры HRESULT, которое выполняется во время вызовов COM-взаимодействия, должно быть подавлено.

PrimaryInteropAssemblyAttribute

Показывает, что сборка с данным атрибутом является основной сборкой взаимодействия.

ProgIdAttribute

Позволяет пользователю задавать идентификатор ProgID класса.

RegistrationServices

Предоставляет набор служб для регистрации и удаления регистрации управляемых сборок при использовании из COM.

RuntimeEnvironment

Предоставляет коллекцию статических (static) методов, возвращающих сведения о среде CLR.

RuntimeInformation

Предоставляет сведения об установке среды выполнения .NET.

SafeArrayRankMismatchException

Это исключение возникает, если ранг входного массива SAFEARRAY не совпадает с рангом, указанным в управляемой подписи.

SafeArrayTypeMismatchException

Исключение создается, если тип входящего SAFEARRAY не совпадает с типом, указанным в управляемой подписи.

SafeBuffer

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

SafeHandle

Представляет класс-оболочку для дескрипторов операционной системы. Этот класс должен наследоваться.

SEHException

Представляет ошибки структурной обработки исключений (SEH).

SequenceMarshal

Предоставляет коллекцию методов для взаимодействия с ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Этот атрибут является устаревшим.

StandardOleMarshalObject

Заменяет стандартный независимый от потока модуль упаковки и передачи среды CLR на стандартный модуль упаковки и передачи STA OLE.

StructLayoutAttribute

Позволяет управлять физическим размещением полей данных класса или структуры в памяти.

SuppressGCTransitionAttribute

Указывает, что при выполнении неуправляемого вызова функции переход сборки мусора должен быть пропущен.

TypeIdentifierAttribute

Обеспечивает поддержку эквивалентности типов.

TypeLibConverter

Предоставляет набор служб, преобразующих управляемую сборку в библиотеку COM-типов и наоборот.

TypeLibFuncAttribute

Содержит флаги FUNCFLAGS, ранее импортированные для данного метода из библиотеки COM- типов.

TypeLibImportClassAttribute

Определяет, какой тип Type использует интерфейс исключительным образом. Этот класс не наследуется.

TypeLibTypeAttribute

Содержит флаги TYPEFLAGS, ранее импортированные для данного типа из библиотеки COM-типов.

TypeLibVarAttribute

Содержит флаги VARFLAGS, ранее импортированные для данного поля из библиотеки COM-типов.

TypeLibVersionAttribute

Задает номер версии экспортированной библиотеки типов.

UnknownWrapper

Инкапсулирует объекты, которые необходимо маршалировать, как VT_UNKNOWN.

UnmanagedCallConvAttribute

Указывает соглашение о вызовах, необходимое для вызова методов P/Invoke, реализованных в неуправляемом коде.

UnmanagedCallersOnlyAttribute

Любой метод, помеченный UnmanagedCallersOnlyAttribute, можно вызывать напрямую из машинного кода. Затем можно загрузить токен функции в локальную переменную с помощью оператора address-of в C# и передать ее в качестве обратного вызова в собственный метод.

UnmanagedFunctionPointerAttribute

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

VariantWrapper

Маршалирует данные типа VT_VARIANT | VT_BYREF из управляемого кода в неуправляемый. Этот класс не наследуется.

WasmImportLinkageAttribute

Предоставляет разнообразные члены, поддерживающие COM-взаимодействие и службы вызова платформы. Если вы не знакомы с этими службами, см. раздел Взаимодействие с неуправляемым кодом.

Структуры

ArrayWithOffset

Инкапсулирует массив и смещение в указанный массив.

BIND_OPTS

Взамен рекомендуется использовать BIND_OPTS.

BINDPTR

Взамен рекомендуется использовать BINDPTR.

CLong

CLong — это неизменяемый тип значения, представляющий long тип в C и C++. Он предназначен для использования в качестве типа обмена на управляемой или неуправляемой границе для точного представления в неуправляемых API управляемого long кода, использующих тип . Этот тип имеет 32-разрядные хранилища на всех платформах Windows и 32-разрядных платформах под управлением Unix. Он имеет 64-разрядное хранилище на 64-разрядных платформах Unix.

ComWrappers.ComInterfaceDispatch

Двоичный интерфейс приложения для отправки функции COM-интерфейса.

ComWrappers.ComInterfaceEntry

Тип интерфейса и указатель на целевую VTable.

CONNECTDATA

Взамен рекомендуется использовать CONNECTDATA.

CULong

CULong — это неизменяемый тип значения, представляющий unsigned long тип в C и C++. Он предназначен для использования в качестве типа обмена на управляемой или неуправляемой границе для точного представления в неуправляемых API управляемого unsigned long кода, использующих тип . Этот тип имеет 32-разрядные хранилища на всех платформах Windows и 32-разрядных платформах под управлением Unix. Он имеет 64-разрядное хранилище на 64-разрядных платформах Unix.

DISPPARAMS

Взамен рекомендуется использовать DISPPARAMS.

ELEMDESC

Взамен рекомендуется использовать ELEMDESC.

ELEMDESC.DESCUNION

Взамен рекомендуется использовать ELEMDESC.DESCUNION.

EXCEPINFO

Взамен рекомендуется использовать EXCEPINFO.

FILETIME

Взамен рекомендуется использовать FILETIME.

FUNCDESC

Взамен рекомендуется использовать FUNCDESC.

GCHandle

Предоставляет способ доступа к управляемому объекту из неуправляемой памяти.

HandleRef

Инкапсулирует управляемый объект, который содержит дескриптор для ресурса (передается в неуправляемый код с помощью вызова платформы).

IDLDESC

Взамен рекомендуется использовать IDLDESC.

NFloat

NFloat — это неизменяемый тип значения, представляющий тип с плавающей точкой, имеющий тот же размер, что и собственный целочисленный размер. Он предназначен для использования в качестве типа обмена на управляемой или неуправляемой границе, чтобы точно представлять в управляемом коде неуправляемые API, которые используют псевдоним типа для C или C++ float на 32-разрядных платформах или double на 64-разрядных платформах, таких как тип CGFloat в библиотеках, предоставляемых Apple.

OSPlatform

Представляет платформу операционной системы.

PARAMDESC

Взамен рекомендуется использовать PARAMDESC.

STATSTG

Взамен рекомендуется использовать STATSTG.

TYPEATTR

Взамен рекомендуется использовать TYPEATTR.

TYPEDESC

Взамен рекомендуется использовать TYPEDESC.

TYPELIBATTR

Взамен рекомендуется использовать TYPELIBATTR.

VARDESC

Взамен рекомендуется использовать VARDESC.

VARDESC.DESCUNION

Взамен рекомендуется использовать VARDESC.DESCUNION.

Интерфейсы

_Activator

Предоставляет неуправляемому коду доступ к классу Activator.

_Assembly

Предоставляет неуправляемому коду доступ к открытым членам класса Assembly.

_AssemblyBuilder

Предоставляет неуправляемому коду доступ к классу AssemblyBuilder.

_AssemblyName

Предоставляет неуправляемому коду доступ к классу AssemblyName.

_Attribute

Предоставляет неуправляемому коду доступ к классу Attribute.

_ConstructorBuilder

Предоставляет неуправляемому коду доступ к классу ConstructorBuilder.

_ConstructorInfo

Предоставляет неуправляемому коду доступ к открытым членам класса ConstructorInfo.

_CustomAttributeBuilder

Предоставляет неуправляемому коду доступ к классу CustomAttributeBuilder.

_EnumBuilder

Предоставляет неуправляемому коду доступ к классу EnumBuilder.

_EventBuilder

Предоставляет неуправляемому коду доступ к классу EventBuilder.

_EventInfo

Предоставляет неуправляемому коду доступ к открытым членам класса EventInfo.

_Exception

Предоставляет неуправляемому коду доступ к открытым членам класса Exception.

_FieldBuilder

Предоставляет неуправляемому коду доступ к классу FieldBuilder.

_FieldInfo

Предоставляет неуправляемому коду доступ к открытым членам класса FieldInfo.

_ILGenerator

Предоставляет неуправляемому коду доступ к классу ILGenerator.

_LocalBuilder

Предоставляет неуправляемому коду доступ к классу LocalBuilder.

_MemberInfo

Предоставляет неуправляемому коду доступ к открытым членам класса MemberInfo.

_MethodBase

Предоставляет неуправляемому коду доступ к открытым членам класса MethodBase.

_MethodBuilder

Предоставляет неуправляемому коду доступ к классу MethodBuilder.

_MethodInfo

Предоставляет неуправляемому коду доступ к открытым членам класса MethodInfo.

_MethodRental

Предоставляет неуправляемому коду доступ к классу MethodRental.

_Module

Предоставляет неуправляемому коду доступ к классу Module.

_ModuleBuilder

Предоставляет неуправляемому коду доступ к классу ModuleBuilder.

_ParameterBuilder

Предоставляет неуправляемому коду доступ к классу ParameterBuilder.

_ParameterInfo

Предоставляет неуправляемому коду доступ к классу ParameterInfo.

_PropertyBuilder

Предоставляет неуправляемому коду доступ к классу PropertyBuilder.

_PropertyInfo

Предоставляет неуправляемому коду доступ к открытым членам класса PropertyInfo.

_SignatureHelper

Предоставляет неуправляемому коду доступ к классу SignatureHelper.

_Thread

Предоставляет неуправляемому коду доступ к классу Thread.

_Type

Предоставляет неуправляемому коду доступ к открытым элементам класса Type.

_TypeBuilder

Предоставляет неуправляемому коду доступ к классу TypeBuilder.

ICustomAdapter

Позволяет клиентам получать доступ к фактическому объекту, а не к объекту адаптера, предоставленному пользовательским упаковщиком.

ICustomFactory

Позволяет пользователям создавать код активизации для управляемых объектов, расширяющих MarshalByRefObject,.

ICustomMarshaler

Предоставляет настраиваемые оболочки, обрабатывающие вызовы методов.

ICustomQueryInterface

Позволяет разработчикам предоставлять собственную управляемую реализацию метода IUnknown::QueryInterface(REFIID riid, void **ppvObject).

IDynamicInterfaceCastable

Интерфейс, используемый для участия в сбое приведения типов.

IRegistrationServices

Предоставляет набор служб для регистрации и удаления регистрации управляемых сборок при использовании из COM.

ITypeLibConverter

Предоставляет набор служб, преобразующих управляемую сборку в библиотеку COM-типов и наоборот.

ITypeLibExporterNameProvider

Предоставляет управление регистром имен при экспортировании в библиотеку типов.

ITypeLibExporterNotifySink

Предоставляет механизм обратного вызова для преобразователя сборок, сообщающий вызывающему объекту состояние преобразования и вовлекающий вызывающий объект в процесс преобразования.

ITypeLibImporterNotifySink

Предоставляет механизм обратного вызова для преобразователя библиотеки типов, сообщающий вызывающему объекту состояние преобразования и вовлекающий вызывающий объект в процесс преобразования.

UCOMIBindCtx

Взамен рекомендуется использовать BIND_OPTS.

UCOMIConnectionPoint

Взамен рекомендуется использовать IConnectionPoint.

UCOMIConnectionPointContainer

Взамен рекомендуется использовать IConnectionPointContainer.

UCOMIEnumConnectionPoints

Взамен рекомендуется использовать IEnumConnectionPoints.

UCOMIEnumConnections

Взамен рекомендуется использовать IEnumConnections.

UCOMIEnumMoniker

Взамен рекомендуется использовать IEnumMoniker.

UCOMIEnumString

Взамен рекомендуется использовать IEnumString.

UCOMIEnumVARIANT

Взамен рекомендуется использовать IEnumVARIANT.

UCOMIMoniker

Взамен рекомендуется использовать IMoniker.

UCOMIPersistFile

Взамен рекомендуется использовать IPersistFile.

UCOMIRunningObjectTable

Взамен рекомендуется использовать IRunningObjectTable.

UCOMIStream

Взамен рекомендуется использовать IStream.

UCOMITypeComp

Взамен рекомендуется использовать ITypeComp.

UCOMITypeInfo

Взамен рекомендуется использовать ITypeInfo.

UCOMITypeLib

Взамен рекомендуется использовать ITypeLib.

Перечисления

Architecture

Указывает архитектуру процессора.

AssemblyRegistrationFlags

Определяет набор флагов, используемый при регистрации сборок.

CALLCONV

Взамен рекомендуется использовать CALLCONV.

CallingConvention

Задает соглашение о вызовах, которое требуется для вызова методов, реализованных в неуправляемом коде.

CharSet

Определяет, какой набор символов должны использовать упакованные строки.

ClassInterfaceType

Указывает, какой тип интерфейса генерируется для класса.

ComInterfaceType

Определяет способ предоставления интерфейса модели COM.

ComMemberType

Описывает тип члена модели COM.

CreateComInterfaceFlags

Задает флаги для метода GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags).

CreateObjectFlags

Задает флаги для метода GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).

CustomQueryInterfaceMode

Указывает, может ли интерфейс ICustomQueryInterface использоваться в вызовахIUnknown::QueryInterface метода GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode).

CustomQueryInterfaceResult

Предоставляет значения, возвращаемые методом GetInterface(Guid, IntPtr).

DESCKIND

Взамен рекомендуется использовать DESCKIND.

DllImportSearchPath

Указывает пути, используемые для поиска DLL, предоставляющих вызываемые для платформы функции.

ExporterEventKind

Описывает обратные вызовы, которые делает программа экспорта библиотек типов при экспорте библиотеки типов.

FUNCFLAGS

Взамен рекомендуется использовать FUNCFLAGS.

FUNCKIND

Взамен рекомендуется использовать FUNCKIND.

GCHandleType

Представляет типы дескрипторов, которые GCHandle может выделить тип.

IDispatchImplType

Указывает, какую реализацию IDispatch следует использовать для определенного класса.

IDLFLAG

Взамен рекомендуется использовать IDLFLAG.

IMPLTYPEFLAGS

Взамен рекомендуется использовать IMPLTYPEFLAGS.

ImporterEventKind

Описывает обратные вызовы, выполняемые импортером библиотеки типов при импортировании библиотеки типов.

INVOKEKIND

Взамен рекомендуется использовать INVOKEKIND.

LayoutKind

Управляет макетом объекта при его экспорте в неуправляемый код.

LIBFLAGS

Взамен рекомендуется использовать LIBFLAGS.

PARAMFLAG

Взамен рекомендуется использовать PARAMFLAG.

PosixSignal

Указывает номер сигнала POSIX.

RegistrationClassContext

Определяет набор контекстов выполнения, в которых объект класса будет доступен для запросов, создающих экземпляры.

RegistrationConnectionType

Определяет тип подключения к объекту класса.

StringMarshalling

Указывает, как следует маршалировать строки для созданных p/invokes.

SYSKIND

Взамен рекомендуется использовать SYSKIND.

TYPEFLAGS

Взамен рекомендуется использовать TYPEFLAGS.

TYPEKIND

Взамен рекомендуется использовать TYPEKIND.

TypeLibExporterFlags

Показывает способ создания библиотеки типов.

TypeLibFuncFlags

Описывает исходные параметры FUNCFLAGS в библиотеке типов COM, из которой был импортирован данный метод.

TypeLibImporterFlags

Показывает способ создания сборки.

TypeLibTypeFlags

Описывает исходные параметры флагов TYPEFLAGS в библиотеке типов COM, из которой был импортирован данный тип.

TypeLibVarFlags

Описывает исходные параметры VARFLAGS в библиотеке COM-типов, из которой была импортирована эта переменная.

UnmanagedType

Определяет порядок маршалинга параметров или полей в неуправляемый код.

VarEnum

Показывает способ маршалинга элементов массива при маршалинге массива из управляемого кода в неуправляемый код как массива SafeArray.

VARFLAGS

Взамен рекомендуется использовать VARFLAGS.

Делегаты

DllImportResolver

Предоставляет делегат, используемый для разрешения собственных библиотек посредством обратного вызова.

ObjectCreationDelegate

Создает COM-объект.

Комментарии

Члены этого пространства имен предоставляют несколько категорий функциональных возможностей, как показано в следующей таблице. Атрибуты управляют поведением маршалинга, например способом упорядочения структур или представления строк. Наиболее важными атрибутами являются DllImportAttribute, которые используются для определения методов вызова платформы для доступа к неуправляемых API, и MarshalAsAttribute, которые используются для указания способа маршалирования данных между управляемой и неуправляемой памятью.