System.Runtime.InteropServices Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет разнообразные члены, поддерживающие COM-взаимодействие и службы вызова платформы. Если вы не знакомы с этими службами, см. раздел Взаимодействие с неуправляемым кодом.
Классы
AllowReversePInvokeCallsAttribute |
Позволяет неуправляемому методу вызвать управляемый метод. |
AutomationProxyAttribute |
Указывает, будет ли выполняться маршалинг типа с использованием маршалера автоматизации или настраиваемого прокси-сервера и заглушки. |
BestFitMappingAttribute |
Определяет необходимость преобразования символов Юникода в наиболее подходящие символы ANSI. |
BStrWrapper |
Маршалирует данные типа |
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 |
Инкапсулирует объекты, которые необходимо маршалировать, как |
DefaultCharSetAttribute |
Определяет значение перечисления CharSet. Этот класс не наследуется. |
DefaultDllImportSearchPathsAttribute |
Указывает пути, используемые для поиска DLL, предоставляющих вызываемые для платформы функции. |
DefaultParameterValueAttribute |
Устанавливает значение параметра по умолчанию, которое используется, если параметр вызывается из языка, поддерживающего параметры по умолчанию. Этот класс не наследуется. |
DispatchWrapper |
Инкапсулирует объекты, которые необходимо маршалировать, как |
DispIdAttribute |
Указывает идентификатор диспетчера COM (DISPID) для метода, поля или свойства. |
DllImportAttribute |
Указывает, что метод с атрибутом передается библиотекой динамической компонентов (DLL) как статическая точка входа. |
DynamicInterfaceCastableImplementationAttribute |
Атрибут, необходимый для любого типа, возвращаемого GetInterfaceImplementation(RuntimeTypeHandle). |
ErrorWrapper |
Инкапсулирует объекты, которые необходимо маршалировать, как |
ExtensibleClassFactory |
Включает настройку управляемых объектов, полученных из неуправляемых объектов в процессе создания. |
ExternalException |
Базовый тип исключений для всех исключений COM-взаимодействия и исключений структурированной обработки исключений (SEH). |
FieldOffsetAttribute |
Указывает физическое расположение полей в неуправляемом представлении класса или структуры. |
GuidAttribute |
Предоставляет явный идентификатор Guid в случае, когда использование автоматического идентификатора GUID нежелательно. |
HandleCollector |
Отслеживает незавершенные обработчики и инициирует сбор мусора при достижении заданного порогового значения. |
IDispatchImplAttribute |
Указывает, какая реализация |
ImportedFromTypeLibAttribute |
Показывает, что определенные в сборке типы были исходно определены в библиотеке типов. |
InAttribute |
Указывает, что данные необходимо маршалировать из вызывающего в вызываемый объект и не возвращать вызывающему объекту. |
InterfaceTypeAttribute |
Указывает, является ли интерфейс при предоставлении COM сдвоенным, диспетчерским или только |
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 |
Предоставляет коллекцию статических ( |
RuntimeInformation |
Предоставляет сведения об установке среды выполнения .NET. |
SafeArrayRankMismatchException |
Это исключение возникает, если ранг входного массива |
SafeArrayTypeMismatchException |
Исключение создается, если тип входящего |
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 |
Инкапсулирует объекты, которые необходимо маршалировать, как |
UnmanagedCallConvAttribute |
Предоставляет эквивалент UnmanagedCallersOnlyAttribute для собственных функций, объявленных в .NET. |
UnmanagedCallersOnlyAttribute |
Любой метод, помеченный UnmanagedCallersOnlyAttribute, можно вызывать напрямую из машинного кода. Затем можно загрузить токен функции в локальную переменную с помощью оператора address-of в C# и передать ее в качестве обратного вызова в собственный метод. |
UnmanagedFunctionPointerAttribute |
Управляет поведением при маршалинге сигнатуры делегата, передаваемой как указатель неуправляемой функции в неуправляемый код или из него. Этот класс не наследуется. |
VariantWrapper |
Маршалирует данные типа |
Структуры
ArrayWithOffset |
Инкапсулирует массив и смещение в указанный массив. |
BIND_OPTS |
Взамен рекомендуется использовать BIND_OPTS. |
BINDPTR |
Взамен рекомендуется использовать BINDPTR. |
CLong |
CLong — это неизменяемый тип значения, представляющий |
ComWrappers.ComInterfaceDispatch |
Двоичный интерфейс приложения для отправки функции COM-интерфейса. |
ComWrappers.ComInterfaceEntry |
Тип интерфейса и указатель на целевую VTable. |
CONNECTDATA |
Взамен рекомендуется использовать CONNECTDATA. |
CULong |
CULong — это неизменяемый тип значения, представляющий |
DISPPARAMS |
Взамен рекомендуется использовать DISPPARAMS. |
ELEMDESC |
Взамен рекомендуется использовать ELEMDESC. |
ELEMDESC.DESCUNION |
Взамен рекомендуется использовать ELEMDESC.DESCUNION. |
EXCEPINFO |
Взамен рекомендуется использовать EXCEPINFO. |
FILETIME |
Взамен рекомендуется использовать FILETIME. |
FUNCDESC |
Взамен рекомендуется использовать FUNCDESC. |
GCHandle |
Предоставляет способ доступа к управляемому объекту из неуправляемой памяти. |
HandleRef |
Инкапсулирует управляемый объект, который содержит дескриптор для ресурса (передается в неуправляемый код с помощью вызова платформы). |
IDLDESC |
Взамен рекомендуется использовать IDLDESC. |
NFloat |
NFloat — это неизменяемый тип значения, представляющий тип с плавающей запятой, имеющий тот же размер, что и собственный целочисленный размер.
Он предназначен для использования в качестве типа обмена на управляемой или неуправляемой границе для точного представления в неуправляемых API управляемого кода, использующих псевдоним типа для |
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 |
Указывает, какую реализацию |
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 |
Описывает исходные параметры |
TypeLibImporterFlags |
Показывает способ создания сборки. |
TypeLibTypeFlags |
Описывает исходные параметры флагов TYPEFLAGS в библиотеке типов COM, из которой был импортирован данный тип. |
TypeLibVarFlags |
Описывает исходные параметры VARFLAGS в библиотеке COM-типов, из которой была импортирована эта переменная. |
UnmanagedType |
Определяет порядок маршалинга параметров или полей в неуправляемый код. |
VarEnum |
Показывает способ маршалинга элементов массива при маршалинге массива из управляемого кода в неуправляемый код как массива SafeArray. |
VARFLAGS |
Взамен рекомендуется использовать VARFLAGS. |
Делегаты
DllImportResolver |
Предоставляет делегат, используемый для разрешения собственных библиотек посредством обратного вызова. |
ObjectCreationDelegate |
Создает COM-объект. |
Комментарии
Члены этого пространства имен предоставляют несколько категорий функциональных возможностей, как показано в следующей таблице. Атрибуты управляют поведением маршалинга, например, как упорядочивать структуры или представлять строки. Наиболее важными являются атрибуты DllImportAttribute , которые используются для определения методов вызова неуправляемого кода для доступа к неуправляемым интерфейсам API и MarshalAsAttribute , которые используются для указания способа маршалирования данных между управляемой и неуправляемой памятью.