Bonjour,

J'ai la structure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.

Sauriez vous le faire ?

Merci.

Pascal