I have a solution which contains many separate EXEs that need to be able to send messages back and forth to one another. Right now each EXE has to know about each other up front and they use IPC to communicate but I really want a more elegant solution.
I want a factory where each EXE can register itself as an endpoint and any EXE can go to the factory and retrieve a list of all registered endpoints so he can send targeted messages to just the applications he needs to talk to at that time, without having to know before hand all the details about all the processes that talk.
I've got the factory DLL worked out but I don't know how to make it a global instance, one instance of the factory that is shared amongst all the running EXEs in the solution. I've been told to use WCF via an NT Service, Global Assembly Cache, and even told to maintain an XML file containing serialized endpoints in the allUsers AppData. I haven't investigated these options yet but I plan to start researching them in the next few days.
I'm wondering if anyone here can recommend a simple, elegant, and common-sense suggestion for accomplishing what I need to do (share a single instance factory among many running processes)