protected virtual void Internal_ApplyToObject(object obj) { if (ParentScript != null) { ParentScript?.Internal_ApplyToObject(obj); } Type t = obj.GetType(); foreach (var Property in t.GetProperties()) { if (JObject.ContainsKey(Property.Name)) { object val = JObject.SelectToken(Property.Name).ToObject(Property.PropertyType, Serializer); Property.SetValue(obj, val); } } if (obj is INamed) { (obj as INamed).Name = ObjectName ?? (obj as INamed).Name; } }