public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var objectType = value.GetType();

            try
            {
                _MigratedTypes.Value[objectType] = true;
                var obj = JObject.FromObject(value, serializer);
                obj[VersionMemberName.VersionPropertyName] = VersionMemberName.GetCurrentVersion(objectType);
                obj.WriteTo(writer);
            }
            finally
            {
                _MigratedTypes.Value[objectType] = false;
            }
        }