title: Json.NET StringEnumConverter not working as expected
body: <p>I'm attempting to use Json.NET with the System.Net.Http.HttpClient to send an object with an enum property, however the enum is always serialized as an integer value rather than the string equivalent.</p>
  
  <p>I've tried following the instructions here:</p>
  
  <p><a href="http://james.newtonking.com/archive/2013/05/08/json-net-5-0-release-5-defaultsettings-and-extension-data" rel="noreferrer">http://james.newtonking.com/archive/2013/05/08/json-net-5-0-release-5-defaultsettings-and-extension-data</a></p>
  
  <p>By both adding an instance of StringEnumConverter to the JsonSerializerSettings and also tried to decorate the enum property with <code>[JsonProperty(ItemConverterType = typeof(StringEnumConverter))]</code> neither of which appear to be working in my example.</p>
  
  <p>I'm using Json.NET version 5.0.8</p>
  
  <p>Can anyone tell me what I'm doing wrong please?  Here is a sample console app to replicate showing both the global serializer settings and the decorated property:</p>
  
  <p>Thanks.</p>
  
  <pre><code>using System;
  using System.Net.Http;
  using Newtonsoft.Json;
  using Newtonsoft.Json.Converters;
  
  namespace ConsoleApplication1
  {
      class Program
      {
          static void Main(string[] args)
          {
              HttpClient client = new HttpClient { BaseAddress = new Uri("http://test-uri.com") };
  
              JsonConvert.DefaultSettings = (() =&gt;
              {
                  var settings = new JsonSerializerSettings();
                  settings.Converters.Add(new StringEnumConverter());
                  return settings;
              });
  
              var data = new TestData { Enum = TestEnum.Hello };
  
              // The following posts: {"Enum":0}
              // Shouldn't it post {"Enum":"Hello"} instead?
              var result = client.PostAsJsonAsync("/test", data).Result;
          }
  
          public class TestData
          {
              [JsonProperty(ItemConverterType = typeof(StringEnumConverter))]
              public TestEnum Enum { get; set; }
          }
  
          public enum TestEnum
          {
              Hello,
              World
          }
      }
  }
  </code></pre>
  
  <p>I've inspected this with Fiddler and it posts: <code>{"Enum":0}</code> rather than <code>{"Enum":"Hello"}</code> which is what I would expect.</p>