¿Cómo calcular una matriz de estructuras de tamaño variable? Ayuda de interoperabilidad de C # y C ++

Tengo las siguientes estructuras de C ++

struct InnerStruct
{
   int A;
   int B;
};

struct OuterStruct
{
   int numberStructs;
   InnerStruct* innerStructs;
};

Y una función de C ++

OuterStruct getStructs();

¿Cómo puedo reunir esto a C #? Donde las definiciones de C # es

struct OuterStruct {
   InnerStruct[] innerStructs;
};

Respuestas a la pregunta(1)

Su respuesta a la pregunta