System.Runtime.InteropServices 命名空间

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

AllowReversePInvokeCallsAttribute

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

AutomationProxyAttribute

指定应使用自动化封送处理程序还是自定义代理和存根对类型进行封送处理。

BestFitMappingAttribute

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

BStrWrapper

VT_BSTR 类型的数据从托管代码封送到非托管代码。 此类不能被继承。

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

对封送处理程序应该将其作为 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 公开双重接口和调度接口时公共语言运行时使用何种 IDispatch 实现。

ImmutableCollectionsMarshal

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

ImportedFromTypeLibAttribute

指示在程序集内定义的类型原来在类型库中定义。

InAttribute

指示数据应从调用方封送到被调用方,而不是从被调用方封送回调用方。

InterfaceTypeAttribute

指示向 COM 公开时,托管接口是双重的、仅支持调度的、还是仅支持 IUnknown 的。

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

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

RuntimeInformation

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

SafeArrayRankMismatchException

传入的 SAFEARRAY 的设置级别与托管签名中指定的设置级别不匹配时引发的异常。

SafeArrayTypeMismatchException

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

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

对封送处理程序应该将其作为 VT_UNKNOWN 封送的对象进行包装。

UnmanagedCallConvAttribute

指定调用非托管代码中实现的 P/Invoke 方法所需的调用约定。

UnmanagedCallersOnlyAttribute

标记有 UnmanagedCallersOnlyAttribute 的任何方法均可从本机代码中直接调用。 可以使用 C# 的 address-of 运算符将函数令牌加载到局部变量,并作为回叫传递给本机方法。

UnmanagedFunctionPointerAttribute

控制作为非托管函数指针传递到非托管代码(或从非托管代码中传递)的委托签名的封送处理行为。 此类不能被继承。

VariantWrapper

VT_VARIANT | VT_BYREF 类型的数据从托管代码封送到非托管代码。 此类不能被继承。

WasmImportLinkageAttribute

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

结构

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 是一种不可变值类型,表示与本机整数大小相同的浮动类型。 它旨在用作托管/非托管边界处的交换类型,以便在 32 位平台或 64 位平台上double(例如 Apple 提供的库中的 CGFloat 类型)上使用 C 或 C++ float 的类型别名的托管代码非托管 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

指示将用于特定类的 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(用于指定如何在托管和非托管内存之间封送数据)。