Wrote a compiler with .NET last year. Used F# for the Lexing/Parsing to an AST and C# for LLVM IR code gen. Interop was so easy, but the docs for the C# LLVM bindings were not so great, so it's a little incomplete. I only got it to effectively interpret, never actually executed a whole outputted object file.