public void SetValue <T>(string key, T value, bool notify = false) { ReflectionDataObserver observer = GetObserver(key); if (observer.fieldInfo != null) { observer.fieldInfo.SetValue(this, value); if (notify) { observer.Invoke(this); } return; } if (observer.propertyInfo != null) { observer.propertyInfo.SetValue(this, value); if (notify) { observer.Invoke(this); } return; } }