Я пытаюсь получить информацию о поле значения массива из структуры. Пока у меня есть следующее, но я не вижу, как получить нужную информацию.
[StructLayout(LayoutKind.Sequential)]
public struct Test
{
public byte Byte1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=3)]
public Test2[] Test1;
}
BindingFlags struct_field_flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly;
FieldInfo[] all_struct_fields = typeof(Test).GetFields(struct_field_flags);
foreach (FieldInfo struct_field in all_struct_fields)
{
if(struct_field.FieldType.IsArray)
{
// Get FieldInfo for each value in the Test1 array within Test structure
}
}
Итак, если бы я сделал:
Type array_type = struct_field.FieldType.GetElementType();
Это вернет тип Test2, но мне не нужен тип массива, мне нужны FieldInfo или поля этой структуры, чтобы я мог устанавливать значения из нее.