Take a look at this blog entry:
http://odetocode.com/Blogs/scott/archive/2006/09/11/6546.aspx
The code can be changed to work:
using System;
public class Client : MarshalByRefObject
{
public delegate void MessageCallBack();
static String msg = "Login";
public MessageCallBack Callback = new MessageCallBack(delegate { Console.WriteLine(msg);});
static void Main()
{
AppDomain ad = AppDomain.CreateDomain("ServerDomain");
Client client = (Client)ad.CreateInstanceAndUnwrap(typeof(Client).Assembly.FullName, "Client");
client.SendMessage(client.Callback);
}
public void SendMessage(MessageCallBack callback)
{
callback();
}
}