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.