現在、UTF-8 C 文字列用のカスタム マーシャラーを実装しようとしています。問題は、私が扱っている文字列が必ずしもヌルで終了していないため、定数サイズまたはサイズパラメーターに依存する必要があることです。それらを LPStr としてマーシャリングする場合、SizeParamIndex および SizeConst MarshalAs 属性パラメーターを使用できますが、ICustomMarshaler の実装内のパラメーターにアクセスできないようです。
各関数で Byte[] と手動の UTF-8 変換を使用することは避けたいのですが、それしかないようです。または、SizeParamIndex/SizeConst 情報にアクセスする方法がありませんか? マーシャラー内でこのデータを何らかの方法で渡すことができたとしても、SizeParamIndex の実際のサイズ値を取得するにはどうすればよいでしょうか?