I'm using C# with .NET 3.5. Is it possible to serialize a block of code, transmit it somewhere, deserialize it, and then execute it?

An example usage of this would be:

Action<object> pauxPublish = delegate(object o)
{
    if (!(o is string))
    {
        return;
    }
    Console.WriteLine(o.ToString());
};
Transmitter.Send(pauxPublish);

With some remote program doing:

var action = Transmitter.Recieve();
action("hello world");

My end goal is to be able to execute arbitrary code in a different process (which has no prior knowledge of the code).

Edit
Report