System.ComponentModel.ReflectPropertyDescriptor.ExtenderCanResetValue C# (CSharp) Method

ExtenderCanResetValue() private method

private ExtenderCanResetValue ( IExtenderProvider provider, object component ) : bool
provider IExtenderProvider
component object
return bool
        internal bool ExtenderCanResetValue(IExtenderProvider provider, object component)
        {
            if (DefaultValue != s_noValue)
            {
                return !object.Equals(ExtenderGetValue(provider, component), _defaultValue);
            }

            MethodInfo reset = ResetMethodValue;
            if (reset != null)
            {
                MethodInfo shouldSerialize = ShouldSerializeMethodValue;
                if (shouldSerialize != null)
                {
                    try
                    {
                        provider = (IExtenderProvider)GetInvocationTarget(_componentClass, provider);
                        return (bool)shouldSerialize.Invoke(provider, new object[] { component });
                    }
                    catch { }
                }
                return true;
            }

            return false;
        }

Usage Example

 /// <summary>
 ///     Determines if the the component will allow its value to be reset.
 /// </summary>
 public override bool CanResetValue(object comp)
 {
     return(_extenderInfo.ExtenderCanResetValue(_provider, comp));
 }