在自定义封送拆收器中使用 SizeConst 和 SizeParamIndex?

Tim*_*ler 5 .net c# mono

我目前正在尝试为 UTF-8 C 字符串实现自定义封送拆收器。问题是,我正在处理的字符串不一定以 null 结尾,所以我需要依赖它们的常量大小或大小参数。当将它们编组为 LPStr 时,我可以使用 SizeParamIndex 和 SizeConst MarshalAs 属性参数,但我似乎无法访问我的 ICustomMarshaler 实现中的那些参数。

我想避免在每个函数上使用 Byte[] 和手动 UTF-8 转换,但似乎这是唯一的方法?或者我是否缺少某种方式来访问 SizeParamIndex/SizeConst 信息?即使我可以以某种方式在封送拆收器中传递这些数据,我将如何获得 SizeParamIndex 的实际大小值?