public virtual void Post(IActorRef sender, object message)
{
if (Mailbox == null)
{
return;
//stackoverflow if this is the deadletters actorref
//this._systemImpl.DeadLetters.Tell(new DeadLetter(message, sender, this.Self));
}
if (_systemImpl.Settings.SerializeAllMessages)
{
DeadLetter deadLetter;
var unwrapped = (deadLetter = message as DeadLetter) != null ? deadLetter.Message : message;
if (!(unwrapped is INoSerializationVerificationNeeded))
{
Serializer serializer = _systemImpl.Serialization.FindSerializerFor(message);
byte[] serialized = serializer.ToBinary(message);
object deserialized = _systemImpl.Serialization.Deserialize(serialized, serializer.Identifier,
message.GetType());
message = deserialized;
}
}
var m = new Envelope
{
Sender = sender,
Message = message,
};
Mailbox.Post(Self, m);
}