String EventToSend = Convert.ToBase64String(Serialize(ev));
If you are serializing it on the way out, then deserialize it on the way in...
Outgoing procedure (you are doing this already):
1) Serialize your Event object.
2) Encrypt the serialized data.
3) Send the encrypted data.
So the incoming procedure must be:
1) Receive data.
2) Decrypt data.
3) Deserialize to Event object.
There is an article that explains serialization here:
Object Serialization using C#[
^]
BTW: It might be worth changing the name of your complex object:
event
already exists, and having such a similar name for your objects is open to errors!