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

◆ ExtenderSetValue()

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

Definition at line 495 of file ReflectPropertyDescriptor.cs.

496 {
497 if (provider == null)
498 {
499 return;
500 }
501 ISite site = MemberDescriptor.GetSite(component);
502 IComponentChangeService componentChangeService = null;
503 object oldValue = null;
504 if (site != null)
505 {
506 componentChangeService = (IComponentChangeService)site.GetService(typeof(IComponentChangeService));
507 }
508 if (componentChangeService != null)
509 {
510 oldValue = ExtenderGetValue(provider, component);
511 try
512 {
513 componentChangeService.OnComponentChanging(component, notifyDesc);
514 }
515 catch (CheckoutException ex)
516 {
517 if (ex == CheckoutException.Canceled)
518 {
519 return;
520 }
521 throw;
522 }
523 }
524 IExtenderProvider obj = (IExtenderProvider)GetInvocationTarget(_componentClass, provider);
525 if (SetMethodValue != null)
526 {
527 SetMethodValue.Invoke(obj, new object[2] { component, value });
528 componentChangeService?.OnComponentChanged(component, notifyDesc, oldValue, value);
529 }
530 }
static readonly CheckoutException Canceled
override? object GetInvocationTarget(Type type, object instance)
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.Design.CheckoutException.Canceled, System.ComponentModel.ReflectPropertyDescriptor.ExtenderGetValue(), System.ComponentModel.PropertyDescriptor.GetInvocationTarget(), System.IServiceProvider.GetService(), System.ComponentModel.MemberDescriptor.GetSite(), System.Reflection.MethodBase.Invoke(), System.obj, System.ComponentModel.Design.IComponentChangeService.OnComponentChanged(), System.ComponentModel.Design.IComponentChangeService.OnComponentChanging(), System.ComponentModel.ReflectPropertyDescriptor.SetMethodValue, and System.value.

Referenced by System.ComponentModel.ReflectPropertyDescriptor.ExtenderResetValue(), and System.ComponentModel.ExtendedPropertyDescriptor.SetValue().