If you just want to exchange data between your processes, then you may use pipes. Have a look to that page to see how they work:
http://msdn.microsoft.com/en-us/library/bb546102.aspx[
^]
To use pipes, you need a server and a client application. I suggest that your
DatabaseConnection
be the server since it will be started first.
However pipes will allow you to send and receive data, not share objects as you asked.
As far as I know you can't share an instance of an object between two different processes because they don't share the same address space (sharing between threads is OK because threads are executing within the process' space).
What I suggest is to use pipes to send requests from the UI, these requests will then be interpreted from another dedicated class in your
DatabaseConnection
and will send the result back to the UI.