So basically on runtime we can identify mono by
Type.GetType("Mono.Runtime") != null
As Mono.Runtime class only exist in mono,it’s possible.
That monogame also expose a class unique to it (that doesn’t exist in XNA basically), so i can issue a similar check and find it similarly.