I need to create an out-of-process COM server (.exe) in C# that will be accessed by multiple other processes on the same box. The component has to be a single process becaus
The visual studio project "CSExeCOMServer" that you can find here (All-in-One), gives a full example.
ActiveX.NET, is a true Out-Of-Proc (EXE) COM Server implementation in C#.NET. This one has a cleaner implementation compared to the original CSExeCOMServer, published in Code.MSDN.
ActiveX.NET has features like it does use a .NET Message Pump (instead of native) and uses MEF Plugin model, so that the EXE Server is decoupled and can be shared among multiple COM Plugins, which can be developed independently
You can use RegistrationServices.RegisterTypeForComClients, which is the managed equivalent of CoRegisterClassObject - for sample code see here.