FieldInfo et "fixed" dans une structure
Bonjour,
J'ai la structure suivante :
Code:
1 2 3 4 5 6
|
unsafe public struct TEST_STRUCT
{
public Int32 Attr1;
public fixed bool Attr2[3];
} |
Je veux parser cette structure via un FieldInfo et récupérer les types de variables et valeurs de chaque attribut...
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
unsafe
{
TEST_STRUCT test;
test.Attr1 = 0;
test.Attr2[0] = true;
test.Attr2[1] = false;
test.Attr2[2] = true;
foreach (FieldInfo info in typeof(TEST_STRUCT).GetFields())
{
object instanceCurrent = info.GetValue(test);
Console.WriteLine("{0,50}\t:\t{1,30}\t:\t{2,5}", info.Name, info.FieldType.FullName, info.GetValue(test));
object[] attr = info.GetCustomAttributes(typeof(System.Runtime.CompilerServices.FixedBufferAttribute), false);
if (attr.Length > 0)
{
System.Runtime.CompilerServices.FixedBufferAttribute bufattr = (System.Runtime.CompilerServices.FixedBufferAttribute)attr[0];
Console.WriteLine("Member '{0}' is a fixed buffer with {1} elements of {2}", info.Name, bufattr.Length, bufattr.ElementType);
}
}
} |
J'y arrive facilement sur un attribut de type bool : je récupère le FieldInfo suivant : {Type : Int32, Name : Attr1} et le getValue fonctionne...
Par contre pour un tableau, j'ai le souci suivant : je récupère le FieldInfo suivant : {Type : <Attr2>e__FixedBuffer0, Name : : Attr2}...
J'arrive à choper le type du tableau avec un GetCustomAttributes(...) mais je ne sais pas comment faire pour récupérer les valeurs de chaque indice du tableau. :cry:
Sauriez vous le faire ? ;)
Merci.
Pascal