At a past employer, we used the LIB_CGM library from SDI quite a bit:
http://www.sdicgm.com/cgm_output_library.html
This was written in C - so although it isn't native .NET you should be able to use it from C# as an unmanaged extension.
Google also came up with another C implementation:
http://www.cgmlarson.com/industry/cgm_generator_library.php
I found CGM a pain - it is one of those formats that has a lot of vendor or industry specific extensions. I was in the geophysics/seismic industry, where CGM was still being used a lot but with extensions! As CGM seems to be mainly used in industry specific applications (eg. CGM+ in the seismic industry), I suspect vendors are more interested in C applications that are readily cross-platform rather than PC-only solutions (eg. .NET). Users typically want to use their third party libraries on everything from big iron supercomputers to desktops (although we actively kept plotting functionality off the supercomputers!).