I have only very recently (last week) gotten back to this; however, I have been successful with only one exception. That exception is that it appears it may not be currently possible (LabVIEW 8.5) to register LabVIEW to receive .NET events from any .NET object that is accessed through a .NET remoting channel.
See this post for details.I agree that it is necessary to have a good understanding of .NET remoting.
That said, the basic process that has been successful for me is this:
In LabVIEW, first call the .NET functions that open the appropriate channel over which you will do your remoting. I used a flat sequence structure to do that in LabVIEW. I have also encapsulated that functionality into a .NET class library since our .NET code uses it widely, so I have LabVIEW load that .NET class library, then I use an Invoke node to execute the function that opens the remoting channel.
Once you have the remoting channel open, you can pretty much access any remoted object in LabVIEW except for what I have described above. In my .NET assemblies that supply remoted objects, I have static properties that return a reference to the remote object. The static properties call "ActivatorGetObject" to get and return the reference to the remote object. In LabVIEW, I use a property node to access those static properties.
Our remote objects are hosted by Windows services, so as long as the service is running, ActivatorGetObject returns a reference to the requested object. In addition, all our objects that are hosted by the services are singletons, so, ActivatorGetObject returns a reference to the running singleton object.
I hope this helps.