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

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

Классы

AllowReversePInvokeCallsAttribute

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

AutomationProxyAttribute

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

BestFitMappingAttribute

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

BStrWrapper

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

ClassInterfaceAttribute

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

CoClassAttribute

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

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

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

InvalidComObjectException

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

InvalidOleVariantTypeException

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

JsonMarshal

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

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 с бесплатным потоком на стандартный маршалер OLE STA.

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, можно вызывать непосредственно из машинного кода. Маркер функции можно загрузить в локальную переменную с помощью оператора в C# и передать в качестве обратного вызова в собственный метод.

UnmanagedFunctionPointerAttribute

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

VariantWrapper

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

WasmImportLinkageAttribute

Указывает, что P/Invoke, помеченный этим атрибутом, должен быть связан в качестве импорта WASM.

Структуры

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, которые используют псевдоним типа для float C или C++на 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

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

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/вызовов

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, которые используются для указания того, как данные маршалируются между управляемой и неуправляемой памятью.