i am using a COM dll in my C# Project. I have one USERINFO Structure in my COM dll which looks like :
struct USERINFO { BYTE UserID[USER_ID_SIZE];//42
I had a similar problem once and it's been solved by adding a constructor for the struct:
struct A { public A(int b, int c) { B = b; C = c; } public int B; public int C }
worth trying!