In case this weekend turns out to be too long for you (and you get bored without a real .NET challenge), check out the CodeDOM MSIL Code Provider and the CodeDOM Subset Code Provider. The more interesting bits from the download description:
The Microsoft Intermediate Language (MSIL) code provider takes a CodeDom tree and generates MSIL syntax. MSIL code provider generates all the CodeDom elements that are part of the 1.1 conformance spec. MSIL code provider generates code for most of the CodeDom types that shipped in V1.1. Why emit C# when you can emit IL!
The CodeDom Subset Code provider consumes CodeDom trees in the way the C# code provider does, but whenever a node that does not fall into the subset is encountered, it emits a #error in the generated code. This will alert to the CodeDom tree builder of any place in their code where they don't meet subset conformance. Roll your own subset of the C# language - anyone interested?