c#如何为基本类型(如字节[])制作类型转换器 我在C++的COM服务器上有很多结构,比如 mystruct { char name1[16]; char name2[32]; }

c#如何为基本类型(如字节[])制作类型转换器 我在C++的COM服务器上有很多结构,比如 mystruct { char name1[16]; char name2[32]; },c#,arrays,string,typeconverter,C#,Arrays,String,Typeconverter,当我将这些结构发送到C#COM客户端时,它们就变成了 mystruct { byte[] name1; byte[] name2; } 现在我想在C#的属性网格中显示这些结构。 如何制作将字节[]转换为字符串或从字符串转换为字符串的TypeConverter。 问题不在于ConvertTo和ConvertFrom过程。它们制作起来相当容易。 我不明白的是如何让属性网格使用TypeConverter。 如果我有一个结构,其中整个结构都有一个类型转换器,那么我可以让TypeConverter工作,

当我将这些结构发送到C#COM客户端时,它们就变成了

mystruct { byte[] name1; byte[] name2; }
现在我想在C#的属性网格中显示这些结构。 如何制作将字节[]转换为字符串或从字符串转换为字符串的TypeConverter。 问题不在于
ConvertTo
ConvertFrom
过程。它们制作起来相当容易。 我不明白的是如何让属性网格使用TypeConverter。
如果我有一个结构,其中整个结构都有一个类型转换器,那么我可以让TypeConverter工作,但是如何让TypeConverter为byte[]这样的基本类型工作呢

为什么不使用
string
[Marshallas(UnmanagedType.ByValTStr,SizeConst=16/32)]
来代替
byte[]
在C#struct?中,COM类型通常是从类型库自动生成的。这会阻止添加指向PropertyGrid所需的[TypeConverter]属性。所以不要这样做,编写自己的C#类,该类易于编辑,并在公开之前将struct字段复制到该类中。