System.Runtime.InteropServices 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供各种支持 COM 互操作和平台调用服务的成员。 如果不熟悉这些服务,请参阅与非托管代码交互操作。
类
AllowReversePInvokeCallsAttribute |
允许非托管方法调用托管方法。 |
AutomationProxyAttribute |
指定应使用自动化封送处理程序还是自定义代理和存根对类型进行封送处理。 |
BestFitMappingAttribute |
控制是否将 Unicode 字符转换为最接近的匹配 ANSI 字符。 |
BStrWrapper |
将 |
ClassInterfaceAttribute |
指示在完全生成某个接口后为要向 COM 公开的类生成的类接口类型。 |
CoClassAttribute |
指定从类型库导入的组件类的类标识符。 |
CollectionsMarshal |
一种不安全的类,它提供一组方法来访问集合的基础数据表示形式。 |
ComAliasNameAttribute |
指示参数或字段类型的 COM 别名。 |
ComAwareEventInfo |
允许事件处理程序的后期绑定注册。 |
ComCompatibleVersionAttribute |
向 COM 客户端指示程序集当前版本中的所有类与该程序集早期版本中的类兼容。 |
ComConversionLossAttribute |
指示从类型库向程序集导入类或接口时丢失了有关信息。 |
ComDefaultInterfaceAttribute |
指定要向 COM 公开的默认接口。 此类不能被继承。 |
ComEventInterfaceAttribute |
标识源接口和实现事件接口方法的类,事件接口在从 COM 类型库中导入组件类时生成。 |
ComEventsHelper |
提供允许 .NET 委托的方法,这些委托处理将从 COM 对象添加和删除的事件。 |
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 公开双重接口和调度接口时公共语言运行时使用何种 |
ImmutableCollectionsMarshal |
一个不安全的类,它提供一组方法来访问不可变集合的基础数据表示形式。 |
ImportedFromTypeLibAttribute |
指示在程序集内定义的类型原来在类型库中定义。 |
InAttribute |
指示数据应从调用方封送到被调用方,而不是从被调用方封送回调用方。 |
InterfaceTypeAttribute |
指示向 COM 公开时,托管接口是双重的、仅支持调度的、还是仅支持 |
InvalidComObjectException |
当使用无效的 COM 对象时引发的异常。 |
InvalidOleVariantTypeException |
当封送处理程序遇到无法封送到托管代码的变量类型参数时,由该封送处理程序引发的异常。 |
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 |
用标准 OLE STA 封送拆收器替换标准公共语言运行时 (CLR) 自由线程封送拆收器。 |
StructLayoutAttribute |
允许你控制内存中类或结构的数据字段的物理布局。 |
SuppressGCTransitionAttribute |
指示在调用非托管函数时应跳过垃圾回收转换。 |
TypeIdentifierAttribute |
为类型等效提供支持。 |
TypeLibConverter |
提供一组服务,这些服务将托管程序集转换为 COM 类型库或进行反向转换。 |
TypeLibFuncAttribute |
包含最初从 COM 类型库为此方法导入的 FUNCFLAGS。 |
TypeLibImportClassAttribute |
指定哪个 Type 独占使用接口。 此类不能被继承。 |
TypeLibTypeAttribute |
包含最初为此类型从 COM 类型库导入的 TYPEFLAGS。 |
TypeLibVarAttribute |
包含最初为此字段从 COM 类型库导入的 VARFLAGS。 |
TypeLibVersionAttribute |
指定已导出类型库的版本号。 |
UnknownWrapper |
对封送处理程序应该将其作为 |
UnmanagedCallConvAttribute |
指定调用非托管代码中实现的 P/Invoke 方法所需的调用约定。 |
UnmanagedCallersOnlyAttribute |
标记有 UnmanagedCallersOnlyAttribute 的任何方法均可从本机代码中直接调用。 可以使用 C# 的 address-of 运算符将函数令牌加载到局部变量,并作为回叫传递给本机方法。 |
UnmanagedFunctionPointerAttribute |
控制作为非托管函数指针传递到非托管代码(或从非托管代码中传递)的委托签名的封送处理行为。 此类不能被继承。 |
VariantWrapper |
将 |
结构
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 是一种不可变值类型,表示与本机整数大小相同的浮动类型。
它旨在用作托管/非托管边界处的交换类型,以便在 32 位平台或 64 位平台上 |
OSPlatform |
表示一种操作系统平台。 |
PARAMDESC |
请改用 PARAMDESC。 |
STATSTG |
请改用 STATSTG。 |
TYPEATTR |
请改用 TYPEATTR。 |
TYPEDESC |
请改用 TYPEDESC。 |
TYPELIBATTR |
请改用 TYPELIBATTR。 |
VARDESC |
请改用 VARDESC。 |
VARDESC.DESCUNION |
请改用 VARDESC.DESCUNION。 |
接口
枚举
委托
DllImportResolver |
提供用于通过回调解析本机库的委托。 |
ObjectCreationDelegate |
创建 COM 对象。 |
注解
此命名空间的成员提供多个类别的功能,如下表所示。 属性控制封送处理行为,例如如何排列结构或如何表示字符串。 最重要的属性是 DllImportAttribute(用于定义用于访问非托管 API 的平台调用方法)和 MarshalAsAttribute(用于指定如何在托管和非托管内存之间封送数据)。