Scenario:
It might be overkill, but it's the remoting method I'm most familiar with, and seems to be the current .NET platform standard: Windows Communication Framework (WCF).
Here are a few references:
MSDN library articles on WCF
WCF Developer's Primer from CODE Magazine
A quick summary primer of what's covered in the other two
Well, you may use .NET Remoting, but that is officially deprecated, you should really go for WCF.
Edit: WCF does not share an assembly, instead it shares an XML contract that both client and server uses to generate parsers for specified types and methods.