System.Runtime.InteropServices 命名空间

提供各种支持 COM 互操作和平台调用服务的成员。 如果不熟悉这些服务,请参阅 与非托管代码互操作。

AllowReversePInvokeCallsAttribute

允许非托管方法调用托管方法。

AutomationProxyAttribute

指定是应使用自动化封送处理器还是自定义代理和存根来封送类型。

BestFitMappingAttribute

控制 Unicode 字符是否转换为最匹配的 ANSI 字符。

BStrWrapper

封送类型 VT_BSTR 从托管代码到非托管代码的数据。 无法继承此类。

ClassInterfaceAttribute

指示为向 COM 公开的类生成类接口的类型(如果完全生成接口)。

CoClassAttribute

指定从类型库导入的 coclass 的类标识符。

CollectionsMarshal

一个不安全类,提供一组方法来访问集合的基础数据表示形式。

ComAliasNameAttribute

指示参数或字段类型的 COM 别名。

ComAwareEventInfo

允许事件处理程序的后期绑定注册。

ComCompatibleVersionAttribute

向 COM 客户端指示程序集当前版本中的所有类都与程序集早期版本中的类兼容。

ComConversionLossAttribute

指示从类型库导入程序集时,有关类或接口的信息丢失。

ComDefaultInterfaceAttribute

指定要向 COM 公开的默认接口。 无法继承此类。

ComEventInterfaceAttribute

标识源接口和实现从 COM 类型库导入 coclass 时生成的事件接口的方法的类。

ComEventsHelper

提供用于启用处理要从 COM 对象中添加和删除的事件的 .NET 委托的方法。

COMException

从 COM 方法调用返回无法识别的 HRESULT 时引发的异常。

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

指示公共语言运行时在向 COM 公开双接口和 dispinterface 时使用的 IDispatch 实现。

ImmutableCollectionsMarshal

一个不安全类,提供一组方法来访问不可变集合的基础数据表示形式。

ImportedFromTypeLibAttribute

指示程序集中定义的类型最初是在类型库中定义的。

InAttribute

指示应将数据从调用方封送给被调用方,但不应返回到调用方。

InterfaceTypeAttribute

指示在向 COM 公开时,托管接口是双接口、仅调度接口还是 IUnknown -only。

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

指示应禁止在 COM 互操作调用期间发生的 HRESULT 签名转换。

PrimaryInteropAssemblyAttribute

指示特性化程序集是主互操作程序集。

ProgIdAttribute

允许用户指定类的 ProgID。

RegistrationServices

提供一组用于注册和注销托管程序集的服务,供 COM 使用。

RuntimeEnvironment

提供一组 static 方法,这些方法返回有关公共语言运行时环境的信息。

RuntimeInformation

提供有关 .NET 运行时安装的信息。

SafeArrayRankMismatchException

当传入 SAFEARRAY 的排名与托管签名中指定的排名不匹配时引发的异常。

SafeArrayTypeMismatchException

当传入 SAFEARRAY 的类型与托管签名中指定的类型不匹配时引发的异常。

SafeBuffer

提供可用于读取和写入的受控内存缓冲区。 尝试访问受控缓冲区外的内存(不足和溢出)会引发异常。

SafeHandle

表示操作系统句柄的包装类。 必须继承此类。

SEHException

表示结构化异常处理 (SEH) 错误。

SequenceMarshal

提供与 ReadOnlySequence<T>互操作的方法集合。

SetWin32ContextInIDispatchAttribute

此属性已弃用。

StandardOleMarshalObject

将标准公共语言运行时(CLR)自由线程封送处理器替换为标准 OLE STA 封送处理器。

StructLayoutAttribute

允许控制内存中类或结构的数据字段的物理布局。

SuppressGCTransitionAttribute

指示在进行非托管函数调用时应跳过垃圾回收转换。

TypeIdentifierAttribute

提供对类型等效性的支持。

TypeLibConverter

提供一组服务,用于将托管程序集转换为 COM 类型库,反之亦然。

TypeLibFuncAttribute

包含最初从 COM 类型库导入此方法的 FUNCFLAGS

TypeLibImportClassAttribute

指定哪个 Type 独占使用接口。 无法继承此类。

TypeLibTypeAttribute

包含最初从 COM 类型库导入此类型的 TYPEFLAGS

TypeLibVarAttribute

包含最初从 COM 类型库为此字段导入的 VARFLAGS

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 是一种不可变值类型,表示 C 和 C++ 中的 long 类型。 它旨在用作托管/非托管边界上的交换类型,以准确表示使用 long 类型的托管代码非托管 API。 此类型在所有 Windows 平台和 32 位基于 Unix 的平台上具有 32 位存储。 它在 64 位 Unix 平台上具有 64 位存储。

ComWrappers.ComInterfaceDispatch

用于 COM 接口函数调度的应用程序二进制接口。

ComWrappers.ComInterfaceEntry

指向目标 VTable 的接口类型和指针。

CONNECTDATA

请改用 CONNECTDATA

CULong

CULong 是一种不可变值类型,表示 C 和 C++ 中的 unsigned long 类型。 它旨在用作托管/非托管边界上的交换类型,以准确表示使用 unsigned long 类型的托管代码非托管 API。 此类型在所有 Windows 平台和 32 位基于 Unix 的平台上具有 32 位存储。 它在 64 位 Unix 平台上具有 64 位存储。

DISPPARAMS

请改用 DISPPARAMS

ELEMDESC

请改用 ELEMDESC

ELEMDESC.DESCUNION

请改用 ELEMDESC.DESCUNION

EXCEPINFO

请改用 EXCEPINFO

FILETIME

请改用 FILETIME

FUNCDESC

请改用 FUNCDESC

GCHandle

提供从非托管内存访问托管对象的方法。

HandleRef

包装托管对象,该对象包含一个句柄,该句柄使用平台调用传递给非托管代码的资源。

IDLDESC

请改用 IDLDESC

NFloat

NFloat 是一种不可变值类型,表示与本机整数大小相同的浮点类型。 它旨在用作托管/非托管边界上的交换类型,以在托管代码非托管 API 中准确表示,这些 API 在 32 位平台上使用 C 或C++的 float,或在 64 位平台上 double,例如 Apple 提供的库中的 CGFloat 类型。

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/invoke 封送字符串

SYSKIND

请改用 SYSKIND

TYPEFLAGS

请改用 TYPEFLAGS

TYPEKIND

请改用 TYPEKIND

TypeLibExporterFlags

指示应如何生成类型库。

TypeLibFuncFlags

介绍从中导入此方法的 COM 类型库中 FUNCFLAGS 的原始设置。

TypeLibImporterFlags

指示应如何生成程序集。

TypeLibTypeFlags

介绍从中导入该类型的 COM 类型库中 TYPEFLAGS 的原始设置。

TypeLibVarFlags

介绍从中导入变量的 COM 类型库中 VARFLAGS 的原始设置。

UnmanagedType

标识如何将参数或字段封送给非托管代码。

VarEnum

指示将数组从托管代码封送到非托管代码作为 SafeArray时,如何封送数组元素。

VARFLAGS

请改用 VARFLAGS

委托

DllImportResolver

提供用于通过回调解析本机库的委托。

ObjectCreationDelegate

创建 COM 对象。

注解

此命名空间的成员提供多个类别的功能,如下表所示。 属性控制封送处理行为,例如如何排列结构或如何表示字符串。 最重要的属性是 DllImportAttribute,用于定义用于访问非托管 API 的平台调用方法,以及用于指定如何在托管和非托管内存之间封送数据 MarshalAsAttribute