public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var info = new GrainReferenceInfo();

            serializer.Populate(reader, info);

            return(JsonConvert.DeserializeObject(info.Data, serializerSettings));
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var    reference = (GrainReference)value;
            string key       = reference.ToKeyString();
            var    info      = new GrainReferenceInfo
            {
                Key  = key,
                Data = JsonConvert.SerializeObject(value, serializerSettings)
            };

            serializer.Serialize(writer, info);
        }