Witam na forum.
Borykam się z takim problemem już około tygodnia. Piszę program do komunikacji z urządzeniem na porcie RS232. Program był wcześniej napisany w C++ i dane pobierane z portu były pakowane do struktury, która wygląda mniej więcej tak:

union Dane{
    struct{
        unsigned int	zmienna1;				
        unsigned int	zmienna2;
        union{	
            struct{
                unsigned int bit1	              :1;		
                unsigned int bit2 	      :1;	
                unsigned int bit3 	      :1;	
                unsigned int bit4 	      :1;	
                unsigned int bit5	 	      :1;		
                unsigned int bit6 	      :1;	
                unsigned int bit7 	      :1;	
                unsigned int bit8 	      :1;	
                unsigned int bit9	              :1;
            }bit;
            unsigned int ALL;
        }unia1;           
    }SLOWO;
    unsigned int	Bufor[3];
};

Taka jest budowa tej struktury, jest więcej tych zagnieżdżonych unii i więcej danych, ale chodzi mi bardziej o tą tablicę, bo jak widać jak zmienimy któryś z elementów tablicy odpowiadający mu element unii też zmieni wartość.
W C# napisałem to mniej więcej tak:

[StructLayoutAttribute(LayoutKind.Explicit, CharSet = CharSet.Ansi, Size=96)]
public unsafe struct Dane
    {  
        [FieldOffsetAttribute(0)] public UInt16* bufor;
            
        [FieldOffsetAttribute(0)] public UInt16 zmienna1;
        [FieldOffsetAttribute(2)] public UInt16 zmienna2;
        
        [FieldOffsetAttribute(4)] public Unia1 unia1;

gdzie Unia1 wygląda tak:

[Flags]
    public enum Unia1 : ushort
    {
        bit1 = 0,        
        bit2  = 1,  
        bit3 = 2,   
        bit4  = 4,  
        bit5 = 8,   
        bit6  = 16,
        bit7= 32,  
        bit8= 64,  
        bit9= 128,
    }    

No i teraz nie mogę zrobić przypisania

Dane dane = new Dane();
/*tu wypełniana jest tablica Uint16[] Bufor */
unsafe
{
 fixed (dane.bufor = Bufor);
}

Kompilator wyrzuca mi "Identifier expected". Jak ktoś może coś poradzić w tym temacie, a może zrobić to jakoś inaczej, to od razu z góry dziękuję.
Dodam jeszcze tylko, że zależy mi na szybkim wysyłaniu i odbieraniu całej tej struktury z portu