// http://stackoverflow.com/questions/8094441/is-it-ok-to-abuse-coclassattribute-to-provide-a-default-implementation-for-an static void Main(string[] args) { // Error 2 Cannot create an instance of the abstract class or interface 'TestCoClass.IApp' X:\jsc.svn\examples\rewrite\TestCoClass\TestCoClass\Program.cs 37 21 TestCoClass var x = new IApp { foo = "foo" }; var doc = new Document(); // Error 1 Cannot implicitly convert type 'TestCoClass.Document' to 'TestCoClass.IApp'. An explicit conversion exists (are you missing a cast?) X:\jsc.svn\examples\rewrite\TestCoClass\TestCoClass\Program.cs 41 23 TestCoClass //IApp xx = doc; var xx = doc.ToApp(); // Constructs a FooImpl ICorDebug foo = new CorDebug { MyProperty = 5 }; foo.Bar(); }