public static StatefulObject DeserializeStatefulObject(byte[] serialized)
        {
            var dictionary = StateSerialization.DeserializeState(serialized);

            var type  = Type.GetType(dictionary.Get <string>("Type"));
            var state = dictionary.Get <IDictionary <string, object> >("State");

            return(StatefulObject.Create(type, state, true));
        }
        public static Tuple <Address[], string, IDictionary <string, object> > DeserializeMessage(byte[] serialized)
        {
            var action  = StateSerialization.DeserializeState(serialized);
            var targets = action.GetList <Address>("Targets").ToArray();
            var type    = action.Get <string>("Type");
            var payload = action.Get <IDictionary <string, object> >("Payload");

            return(Tuple.Create(targets, type, payload));
        }