Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在自定义封送拆收器中使用SizeConst和SizeParamIndex?_C#_.net_Mono - Fatal编程技术网

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

C# 在自定义封送拆收器中使用SizeConst和SizeParamIndex?,c#,.net,mono,C#,.net,Mono,我目前正在尝试为UTF-8C字符串实现一个自定义封送拆收器。 问题是,我处理的字符串不一定以null结尾,因此我需要依赖它们的常量大小或大小参数。 当将它们封送为LPStr时,我可以使用SizeParamIndex和SizeConst MarshalAs属性参数,但我似乎无法访问ICustomMarshaler实现中的属性参数 我希望避免在每个函数上使用Byte[]和手动UTF-8转换,但这似乎是唯一的方法? 或者我是否缺少访问SizeParamIndex/SizeConst信息的方法? 即使我

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

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

这是无法实现的。唯一的备份计划是将其封送为IntPtr。我现在将它们作为LPArray封送到一个字节[],这样可以节省IntPtr的转换,还是有问题,比如.NET试图释放指针(如果指针是委托回调的参数)?