Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ResetValue()

override void System.ComponentModel.ReflectPropertyDescriptor.ResetValue ( object component)
inline

Definition at line 771 of file ReflectPropertyDescriptor.cs.

772 {
773 object invocationTarget = GetInvocationTarget(_componentClass, component);
774 if (DefaultValue != s_noValue)
775 {
776 SetValue(component, DefaultValue);
777 }
778 else if (AmbientValue != s_noValue)
779 {
780 SetValue(component, AmbientValue);
781 }
782 else
783 {
784 if (!(ResetMethodValue != null))
785 {
786 return;
787 }
788 ISite site = MemberDescriptor.GetSite(component);
789 IComponentChangeService componentChangeService = null;
790 object oldValue = null;
791 if (site != null)
792 {
793 componentChangeService = (IComponentChangeService)site.GetService(typeof(IComponentChangeService));
794 }
795 if (componentChangeService != null)
796 {
797 oldValue = GetMethodValue.Invoke(invocationTarget, null);
798 try
799 {
800 componentChangeService.OnComponentChanging(component, this);
801 }
802 catch (CheckoutException ex)
803 {
804 if (ex == CheckoutException.Canceled)
805 {
806 return;
807 }
808 throw;
809 }
810 }
811 if (ResetMethodValue != null)
812 {
813 ResetMethodValue.Invoke(invocationTarget, null);
814 if (componentChangeService != null)
815 {
816 object newValue = GetMethodValue.Invoke(invocationTarget, null);
817 componentChangeService.OnComponentChanged(component, this, oldValue, newValue);
818 }
819 }
820 }
821 }
static readonly CheckoutException Canceled
override? object GetInvocationTarget(Type type, object instance)
override void SetValue(object component, object value)
object? Invoke(object? obj, object?[]? parameters)
void OnComponentChanged(object component, MemberDescriptor? member, object? oldValue, object? newValue)
void OnComponentChanging(object component, MemberDescriptor? member)

References System.ComponentModel.Design.CheckoutException.Canceled, System.IServiceProvider.GetService(), System.ComponentModel.MemberDescriptor.GetSite(), System.ComponentModel.Design.IComponentChangeService.OnComponentChanged(), and System.ComponentModel.Design.IComponentChangeService.OnComponentChanging().