One response to “ICustomFormatter and the ToString( IFormatProvider ) method of Enum”

  1. Chui

    You are out of luck.
    Decompiling using reflector for Enum type:

    [Obsolete(“The provider argument is not used. Please use ToString(String).”)]
    public string ToString(string format, IFormatProvider provider)
    {
    return this.ToString(format);
    }

    [Obsolete(“The provider argument is not used. Please use ToString().”)]
    public string ToString(IFormatProvider provider)
    {
    return this.ToString();
    }

    public string ToString(string format)
    {
    if ((format null) || (format.Length 0))
    {
    format = “G”;
    }
    if (string.Compare(format, “G”, StringComparison.OrdinalIgnoreCase) != 0)
    {
    if (string.Compare(format, “D”, StringComparison.OrdinalIgnoreCase) != 0)
    {
    if (string.Compare(format, “X”, StringComparison.OrdinalIgnoreCase) != 0)
    {
    if (string.Compare(format, “F”, StringComparison.OrdinalIgnoreCase) != 0)
    {
    throw new FormatException(Environment.GetResourceString(“Format_InvalidEnumFormatSpecification”));
    }
    return Enum.InternalFlagsFormat(base.GetType(), this.GetValue());
    }
    return this.ToHexString();
    }
    return this.GetValue().ToString();
    }
    return this.ToString();
    }