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

◆ ExtenderResetValue()

void System.ComponentModel.ReflectPropertyDescriptor.ExtenderResetValue ( IExtenderProvider provider,
object component,
PropertyDescriptor notifyDesc )
inlinepackage

Definition at line 443 of file ReflectPropertyDescriptor.cs.

444 {
445 if (DefaultValue != s_noValue)
446 {
447 ExtenderSetValue(provider, component, DefaultValue, notifyDesc);
448 }
449 else if (AmbientValue != s_noValue)
450 {
451 ExtenderSetValue(provider, component, AmbientValue, notifyDesc);
452 }
453 else
454 {
455 if (!(ResetMethodValue != null))
456 {
457 return;
458 }
459 ISite site = MemberDescriptor.GetSite(component);
460 IComponentChangeService componentChangeService = null;
461 object oldValue = null;
462 if (site != null)
463 {
464 componentChangeService = (IComponentChangeService)site.GetService(typeof(IComponentChangeService));
465 }
466 if (componentChangeService != null)
467 {
468 oldValue = ExtenderGetValue(provider, component);
469 try
470 {
471 componentChangeService.OnComponentChanging(component, notifyDesc);
472 }
473 catch (CheckoutException ex)
474 {
475 if (ex == CheckoutException.Canceled)
476 {
477 return;
478 }
479 throw;
480 }
481 }
482 IExtenderProvider extenderProvider = (IExtenderProvider)GetInvocationTarget(_componentClass, provider);
483 if (ResetMethodValue != null)
484 {
485 ResetMethodValue.Invoke(extenderProvider, new object[1] { component });
486 if (componentChangeService != null)
487 {
488 object newValue = ExtenderGetValue(extenderProvider, component);
489 componentChangeService.OnComponentChanged(component, notifyDesc, oldValue, newValue);
490 }
491 }
492 }
493 }
static readonly CheckoutException Canceled
override? object GetInvocationTarget(Type type, object instance)
void ExtenderSetValue(IExtenderProvider provider, object component, object value, PropertyDescriptor notifyDesc)
object ExtenderGetValue(IExtenderProvider provider, object component)
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.ReflectPropertyDescriptor._componentClass, System.ComponentModel.ReflectPropertyDescriptor.AmbientValue, System.ComponentModel.Design.CheckoutException.Canceled, System.ComponentModel.ReflectPropertyDescriptor.DefaultValue, System.ComponentModel.ReflectPropertyDescriptor.ExtenderGetValue(), System.ComponentModel.ReflectPropertyDescriptor.ExtenderSetValue(), System.ComponentModel.PropertyDescriptor.GetInvocationTarget(), System.IServiceProvider.GetService(), System.ComponentModel.MemberDescriptor.GetSite(), System.Reflection.MethodBase.Invoke(), System.ComponentModel.Design.IComponentChangeService.OnComponentChanged(), System.ComponentModel.Design.IComponentChangeService.OnComponentChanging(), System.ComponentModel.ReflectPropertyDescriptor.ResetMethodValue, and System.ComponentModel.ReflectPropertyDescriptor.s_noValue.

Referenced by System.ComponentModel.ExtendedPropertyDescriptor.ResetValue().