使用 MarshalAsAttribute 属性

更新:2007 年 11 月

可使用 MarshalAsAttribute 属性自定义封送处理行为。例如,可以执行下列任务:

  • 将数组和字符串封送在结构中。

  • 提供支持公共 COM 互操作方案所需要的灵活性。

  • 相比 IDispatch 封送拆收器,在通过平台调用和 vtable 封送拆收器封送类型时提供一致性。

下表描述了对 UnmanagedType 枚举中的值的封送处理支持。

非托管类型

对以下类型有效

在结构中是否受支持

BStr, TBStr

String

LPWStr,

LPStr, LPTStr

String

IUnknown

Object

IDispatch

Object

ByValTStr

String(仅在结构中)

ByValArray

任何数组

SafeArray

任何数组

VBByRefStr

String

Bool

Boolean,

整数类型

I1, I2, I4

适当长度的整数类型

U1, U2, U4

适当长度的无符号整数类型

I8

N/A

U8

N/A

R4

4 字节实数

R8

8 字节实数

Struct

Object

Interface

Object

SysInt, SysUInt

适当符号和长度的整数类型

AnsiBStr

N/A

VariantBool

Boolean

FunctionPtr

N/A

AsAny

N/A

LPArray

N/A

LPStruct

N/A

Error

4 字节整数

Currency

Decimal

请参见

其他资源

.NET Compact Framework 中的封送处理支持