public static void ResetInstaceAllPropertiesByDefaultValue(this object Instance, ValueDefaultType overrideType = ValueDefaultType.All)
        {
            var properties = XConfig.Select_ResetAllDefaultProperties(Instance.GetType());

            foreach (var property in properties)
            {
                if (property.CanWrite)
                {
                    var value = Instance.GetPropertyDefaultValueEx(property, out var type);
                    if (overrideType.HasFlag(type))
                    {
                        property.SetValue(Instance, value);
                    }
                }
                else if (property.CanRead && property.GetValue(Instance) is IDefaultProperty propertyInstance)
                {
                    propertyInstance.ResetAllPropertiesDefaultValue(overrideType);
                }
            }
        }