static void Main(string[] args) { // test var improved = new NewLibrary.ImprovedClass(); improved.InvokeComMethod(); //// COM client //var unmanagedObject = (ISimpleUnmanagedObject)Activator.CreateInstance(Type.GetTypeFromProgID("Noseratio.SimpleUnmanagedObject")); //unmanagedObject.InvokeComMethod(improved); improved.Dispose(); improved = null; // test ref counting GC.Collect(generation: GC.MaxGeneration, mode: GCCollectionMode.Forced, blocking: false); Console.WriteLine("Press Enter to exit."); Console.ReadLine(); }
static void Main(string[] args) { // test var improved = new NewLibrary.ImprovedClass(); improved.InvokeComMethod(); //// COM client //var unmanagedObject = (ISimpleUnmanagedObject)Activator.CreateInstance(Type.GetTypeFromProgID("Noseratio.SimpleUnmanagedObject")); //unmanagedObject.InvokeComMethod(improved); improved.Dispose(); improved = null; // need to work out the reference counting for GC to work correctly GC.Collect(); Console.WriteLine("Press Enter to exit."); Console.ReadLine(); }