System.Runtime.InteropServices.Marshalling 命名空间

包含源生成的互操作的支持类型,例如 MarshalUsingAttribute

AnsiStringMarshaller

ANSI 字符串的封送器。

ArrayMarshaller<T,TUnmanagedElement>

表示数组的封送器。

BStrStringMarshaller

BSTR 字符串的封送器。

ComExposedClassAttribute<T>

指示类型实例应向 COM 公开。

ComInterfaceMarshaller<T>

使用 StrategyBasedComWrappers 实例封送 COM 接口。

ComObject

所有 COM 源生成的运行时可调用包装器的基类 (RCWs)。

ComVariantMarshaller

封送 ComVariantObject

ContiguousCollectionMarshallerAttribute

指定此封送器入口点类型是连续的集合封送器。

CustomMarshallerAttribute

指示用于定义封送器的入口点类型。

ExceptionAsDefaultMarshaller<T>

将异常转换为指定非托管类型的默认值。

ExceptionAsHResultMarshaller<T>

将异常对象封送为其转换为 THResult 的值。

ExceptionAsNaNMarshaller<T>

将所有异常转换为 NaN

ExceptionAsVoidMarshaller

表示吞咽异常的封送器。

GeneratedComClassAttribute

指定通过源生成的 COM 向 COM 公开特性化类型,并且源生成器应为其生成代码。

GeneratedComInterfaceAttribute

指定特性化类型是 COM 接口,并且源生成器应为其生成代码。

IUnknownDerivedAttribute<T,TImpl>

指示接口是 IUnknown 派生接口的托管表示形式。

MarshalUsingAttribute

用于提供用于封送的自定义封送器类型或大小信息的属性。

NativeMarshallingAttribute

用于为给定托管类型提供默认自定义封送器类型的属性。

PointerArrayMarshaller<T,TUnmanagedElement>

表示指针数组的封送器。

ReadOnlySpanMarshaller<T,TUnmanagedElement>.UnmanagedToManagedOut

支持从非托管代码到托管代码的调用中从托管代码到非托管代码的封送。

ReadOnlySpanMarshaller<T,TUnmanagedElement>

支持将 ReadOnlySpan<T> 从托管值封送到元素的非托管值的连续本机数组。

SafeHandleMarshaller<T>

按照 SafeHandle 对象的生存期规则封送 SafeHandle派生类型。

SpanMarshaller<T,TUnmanagedElement>

支持将 Span<T> 从托管值封送到元素的非托管值的连续本机数组。

StrategyBasedComWrappers

一种基于 ComWrappers的类型,它使用可自定义的策略对象来实现 COM 对象包装器和向 COM 公开的托管对象包装器。

UniqueComInterfaceMarshaller<T>

使用仅创建唯一的本机对象包装器(RCW)的 StrategyBasedComWrappers 实例封送 COM 接口。

Utf16StringMarshaller

UTF-16 字符串的封送器。

Utf8StringMarshaller

UTF-8 字符串的封送器。

结构

AnsiStringMarshaller.ManagedToUnmanagedIn

将托管字符串封送为 ANSI 非托管字符串的自定义封送器。

ArrayMarshaller<T,TUnmanagedElement>.ManagedToUnmanagedIn

马歇尔用于将数组从托管到非托管的数组进行封送。

BStrStringMarshaller.ManagedToUnmanagedIn

将托管字符串封送为 ANSI 非托管字符串的自定义封送器。

ComVariant

表示托管代码中的 OLE VARIANT 的类型。

ComVariantMarshaller.RefPropagate

Object 封送给 ComVariant,如果变体具有 VT_BYREF 类型,则会将 Object 的值传播回变量的现有数据存储。

CustomMarshallerAttribute.GenericPlaceholder

泛型参数的占位符类型。

IIUnknownCacheStrategy.TableInfo

包含有关 COM 接口及其虚拟方法表的信息。

PointerArrayMarshaller<T,TUnmanagedElement>.ManagedToUnmanagedIn

表示用于将数组从托管到非托管数组进行封送的封送器。

ReadOnlySpanMarshaller<T,TUnmanagedElement>.ManagedToUnmanagedIn

支持在从托管代码到非托管代码的调用中从托管代码封送到非托管代码。

ReadOnlySpanMarshaller<T,TUnmanagedElement>.ManagedToUnmanagedOut

支持在从托管代码到非托管代码的调用中从非托管代码封送到托管代码。 例如,返回 P/Invoke 方法中的值和 out 参数。

SafeHandleMarshaller<T>.ManagedToUnmanagedIn

SafeHandle 作为其基础句柄值封送为 in 参数或由托管到非托管方案中的值传递的参数,例如 P/Invokes。

SafeHandleMarshaller<T>.ManagedToUnmanagedOut

在托管到非托管方案中,将 SafeHandle 作为其基础句柄值封送为 out 参数,例如 P/Invokes。

SafeHandleMarshaller<T>.ManagedToUnmanagedRef

在托管到非托管方案中将 SafeHandle 作为其基础句柄值封送为 ref 参数,例如 P/Invokes。

SpanMarshaller<T,TUnmanagedElement>.ManagedToUnmanagedIn

支持在从托管代码到非托管代码的调用中从托管代码封送到非托管代码。

Utf8StringMarshaller.ManagedToUnmanagedIn

将托管字符串封送为 UTF-8 非托管字符串的自定义封送器。

VirtualMethodTableInfo

提供有关虚拟方法表和非托管实例指针的信息。

接口

IComExposedClass

定义向 COM 公开的托管类类型的类型级别信息。

IComExposedDetails

定义有关向 COM 公开的托管类类型的详细信息。

IIUnknownCacheStrategy

定义非托管虚拟方法表查找策略。

IIUnknownDerivedDetails

提供 IUnknown 派生接口的详细信息。

IIUnknownInterfaceDetailsStrategy

定义获取接口详细信息的策略。

IIUnknownInterfaceType

定义 IUnknown 派生接口的类型级别信息。

IIUnknownStrategy

定义 IUnknown 交互策略。

IUnmanagedVirtualMethodTableProvider

提供有关托管接口的虚拟方法表的信息,以便在虚拟方法表中启用调用方法。

枚举

ComInterfaceOptions

有关如何使用 COM 互操作源生成器生成 COM 接口互操作的选项。

MarshalMode

表示不同的封送模式。