title: Json.Net Is converting on its own before using my JsonConverter
body: <p>In my WPF code, I'm using Newtonsoft.Json to deserialize json into my models. First, I receive a Json string ('json') which I then parse into 'message'. (The object I want to deserialize is wrapped in a "data" field in the json string).</p>
  
  <pre><code>Activity message = JObject.Parse(json)["data"].ToObject&lt;Activity&gt;();
  </code></pre>
  
  <p>My Activity class uses several [JsonProperty] attributes to generate its fields. One of them is an enum called 'ActivityType'. </p>
  
  <pre><code>[JsonProperty("type")]
  [JsonConverter(typeof(ActivityTypeConverter))]
  public ActivityType Type { get; set; }
  
  public enum ActivityType {
      EmailOpen,
      LinkClick,
      Salesforce,
      Unsupported
  };
  
  public class ActivityTypeConverter : JsonConverter {
  
      public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
      {
          var rawString = existingValue.ToString().ToLower();
          if (rawString.Contains("click"))
              return ActivityType.LinkClick;
          else if (rawString.Contains("salesforce"))
              return ActivityType.Salesforce;
          else if (rawString.Contains("email_open"))
              return ActivityType.EmailOpen;
          else
          {
              Console.WriteLine("unsupported " + rawString);
              return ActivityType.Unsupported;
          }
      }
  
      public override bool CanConvert(Type objectType)
      {
          return !objectType.Equals(typeof(ActivityType));
      }
  
      public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
      {
          throw new NotImplementedException();
      }
  }
  </code></pre>
  
  <p>What's bizarre and frustrating is that json objects which I know have "type":"email_open" are being deserialized as ActivityType.Unsupported, even though my converter should be deserializing them as EmailOpen.</p>
  
  <p>Debugging has shown what the problem is:
  the json field "type" is automatically deserializing "email_open" as EmailOpen <strong>and then</strong> it is sent through my converter. (It breaks then because my conditional checks for an underscore, while EmailOpen.ToString() doesn't have one.)
  <hr>
  <strong>So my question then is:</strong> Why is it converting without my converter and how do I stop it? I just want it to only use my converter</p>