System.Runtime.InteropServices Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет широкий спектр членов, поддерживающих com-взаимодействие и службы вызова платформы. Если вы не знакомы с этими службами, обратитесь к взаимодействия с неуправляемым кодом.
Классы
AllowReversePInvokeCallsAttribute |
Позволяет неуправляемым методом вызывать управляемый метод. |
AutomationProxyAttribute |
Указывает, следует ли маршалировать тип с помощью маршалера автоматизации или пользовательского прокси-сервера и заглушки. |
BestFitMappingAttribute |
Определяет, преобразуются ли символы Юникода в ближайшие соответствующие символы ANSI. |
BStrWrapper |
Маршалирует данные типа |
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 |
Упаковывает объекты маршалер должен маршалировать как |
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 |
Указывает, какой |
ImmutableCollectionsMarshal |
Небезопасный класс, предоставляющий набор методов для доступа к базовым представлениям данных неизменяемых коллекций. |
ImportedFromTypeLibAttribute |
Указывает, что типы, определенные в сборке, изначально определены в библиотеке типов. |
InAttribute |
Указывает, что данные должны маршалироваться от вызывающего абонента вызывающей стороне, но не вернуться к вызывающей стороне. |
InterfaceTypeAttribute |
Указывает, является ли управляемый интерфейс двойным, только диспетчером или |
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 |
Предоставляет коллекцию методов |
RuntimeInformation |
Предоставляет сведения об установке среды выполнения .NET. |
SafeArrayRankMismatchException |
Исключение, возникающее, если ранг входящих |
SafeArrayTypeMismatchException |
Исключение возникает, если тип входящего |
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 |
Упаковывает объекты маршалер должен маршалировать как |
UnmanagedCallConvAttribute |
Указывает соглашение о вызове, необходимое для вызова методов P/Invoke, реализованных в неуправляемом коде. |
UnmanagedCallersOnlyAttribute |
Любой метод, помеченный UnmanagedCallersOnlyAttribute, можно вызывать непосредственно из машинного кода. Маркер функции можно загрузить в локальную переменную с помощью оператора |
UnmanagedFunctionPointerAttribute |
Управляет поведением маршалинга подписи делегата, передаваемой как неуправляемый указатель функции на неуправляемый код или из неуправляемого кода. Этот класс не может быть унаследован. |
VariantWrapper |
Маршалирует данные типа |
WasmImportLinkageAttribute |
Указывает, что P/Invoke, помеченный этим атрибутом, должен быть связан в качестве импорта WASM. |
Структуры
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 |
Указывает, могут ли вызовы метода GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)IUnknown::QueryInterface использовать интерфейс ICustomQueryInterface. |
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/вызовов |
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, которые используются для указания того, как данные маршалируются между управляемой и неуправляемой памятью.