System.Runtime.InteropServices 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供各种支持 COM 互操作和平台调用服务的成员。 如果不熟悉这些服务,请参阅 与非托管代码互操作。
类
AllowReversePInvokeCallsAttribute |
允许非托管方法调用托管方法。 |
AutomationProxyAttribute |
指定是应使用自动化封送处理器还是自定义代理和存根来封送类型。 |
BestFitMappingAttribute |
控制 Unicode 字符是否转换为最匹配的 ANSI 字符。 |
BStrWrapper |
封送类型 |
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 |
包装封送器应作为 |
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 |
指示公共语言运行时在向 COM 公开双接口和 dispinterface 时使用的 |
ImmutableCollectionsMarshal |
一个不安全类,提供一组方法来访问不可变集合的基础数据表示形式。 |
ImportedFromTypeLibAttribute |
指示程序集中定义的类型最初是在类型库中定义的。 |
InAttribute |
指示应将数据从调用方封送给被调用方,但不应返回到调用方。 |
InterfaceTypeAttribute |
指示在向 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 |
指示应禁止在 COM 互操作调用期间发生的 HRESULT 签名转换。 |
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 |
包含最初从 COM 类型库导入此方法的 FUNCFLAGS。 |
TypeLibImportClassAttribute |
指定哪个 Type 独占使用接口。 无法继承此类。 |
TypeLibTypeAttribute |
包含最初从 COM 类型库导入此类型的 TYPEFLAGS。 |
TypeLibVarAttribute |
包含最初从 COM 类型库为此字段导入的 VARFLAGS。 |
TypeLibVersionAttribute |
指定导出的类型库的版本号。 |
UnknownWrapper |
包装封送器应作为 |
UnmanagedCallConvAttribute |
指定调用非托管代码中实现的 P/Invoke 方法所需的调用约定。 |
UnmanagedCallersOnlyAttribute |
任何用 UnmanagedCallersOnlyAttribute 标记的方法都可以直接从本机代码调用。 可以使用 C# 中的 地址 运算符加载到局部变量,并将其作为回调传递给本机方法。 |
UnmanagedFunctionPointerAttribute |
控制作为非托管函数指针传递给非托管代码或从非托管代码传递的委托签名的封送行为。 无法继承此类。 |
VariantWrapper |
封送类型 |
WasmImportLinkageAttribute |
指定标记为此属性的 P/Invoke 应作为 WASM 导入链接。 |
结构
ArrayWithOffset |
封装指定数组中的数组和偏移量。 |
BIND_OPTS |
请改用 BIND_OPTS。 |
BINDPTR |
请改用 BINDPTR。 |
CLong |
CLong 是一种不可变值类型,表示 C 和 C++ 中的 |
ComWrappers.ComInterfaceDispatch |
用于 COM 接口函数调度的应用程序二进制接口。 |
ComWrappers.ComInterfaceEntry |
指向目标 VTable 的接口类型和指针。 |
CONNECTDATA |
请改用 CONNECTDATA。 |
CULong |
CULong 是一种不可变值类型,表示 C 和 C++ 中的 |
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++的 |
OSPlatform |
表示操作系统平台。 |
PARAMDESC |
请改用 PARAMDESC。 |
STATSTG |
请改用 STATSTG。 |
TYPEATTR |
请改用 TYPEATTR。 |
TYPEDESC |
请改用 TYPEDESC。 |
TYPELIBATTR |
请改用 TYPELIBATTR。 |
VARDESC |
请改用 VARDESC。 |
VARDESC.DESCUNION |
请改用 VARDESC.DESCUNION。 |
接口
枚举
委托
DllImportResolver |
提供用于通过回调解析本机库的委托。 |
ObjectCreationDelegate |
创建 COM 对象。 |
注解
此命名空间的成员提供多个类别的功能,如下表所示。 属性控制封送处理行为,例如如何排列结构或如何表示字符串。 最重要的属性是 DllImportAttribute,用于定义用于访问非托管 API 的平台调用方法,以及用于指定如何在托管和非托管内存之间封送数据 MarshalAsAttribute。