Pasar objetos entre C # y C

Mi aplicación consta de código C # con llamadas dll de C no administradas. En mi código C # tengo un objeto / clase donde sus propiedades son ambos tipos de sistema, como string e int y otros objetos que he definido.

Me gustaría pasar este objeto complejo (Graph.cs) a mi código C (dll), ¿qué implementación sugeriría aquí?

He intentado mover estructuras pero no puedo hacerlo, con cualquier otra cosa que no sea string e int.

Gracias.

Código:

public Class Grpah {

    TupleCollection m_TupleCollection;
    int m_nGeneralIndex;       
    bool m_bPrintWRF;
    string m_sLink;  
}

public Class TupleCollection {

    IList<Tuple> _collection;

}     

public Class Tuple {

    Globals.TupleType m_ToppleType;        
    ArrayList m_Parameters;

}

public class TupleArgs {

    public string Value { get; set; }       
    public Globals.PAS PAS;
    public RefCollection RefCollection { get; set; }
    public int Time{ get; set; }      

}

public class RefCollection {

    public List<int> SynSet{ get; set; } 
    public Globals.PAS PAS;

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta