Q:

Global configuration of Enum serialization to string is ignored

I know that I can set and make all enums to be converted to strings during serialization like this (from JSON serialization of enum as string):
var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Converters.Add(
   new StringEnumConverter 
   { 
      CamelCaseText = true 
   }
);

but it seems that is Global ignored in all cases I tried Dictionary<int,List<SomeEnum>>, Dictionary<int, SomeEnum>, List<SomeEnum> or even SomeEnum!
Here is my configuration:
public static class WebApiConfig
    {
        //https://stackoverflow.com/questions/9847564/how-do-i-get-asp-net-web-api-to-return-json-instead-of-xml-using-chrome/20556625#20556625
        private class BrowserJsonFormatter : JsonMediaTypeFormatter
        {
            public BrowserJsonFormatter()
            {
                this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            }

            public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType)
            {
                base.SetDefaultContentHeaders(type, headers, mediaType);
                headers.ContentType = new MediaTypeHeaderValue("application/json");
            }
        }

        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Formatters.Add(new BrowserJsonFormatter());

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            // DateTime Formatter
            config.Formatters.JsonFormatter.SerializerSettings
                .DateFormatString = "o";

            // enum Formatter to String
            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());

        }
    }

Any help is appreciated!

A:

As @dbc suggested, putting a config.Formatters.Clear() for the previous formatters and changing the order - made it work.
Here is the final code that converts enums to strings in any kind of data-structure:
        public static void Register(HttpConfiguration config)
        {

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Formatters.Clear();
            config.Formatters.Add(new BrowserJsonFormatter());

            //enum formatter as strings
            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());

            // DateTime Formatter
            config.Formatters.JsonFormatter.SerializerSettings
                .DateFormatString = "o";

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

        }

