title: Serialize field of type Type with FormatterAssemblyStyle.Simple in Json.NET
body: <p>I'm using the Net20 library of Json.NET (v90r1) in Unity3D and I'm trying to use Json.NET to serialize a field of type Type.</p>
  
  <p>I've found that <code>FormatterAssemblyStyle</code> can affect the automatically generated type information, but it doesn't seem to affect fields that are of type Type. For example:</p>
  
  <pre><code>using Newtonsoft.Json;
  using System.Runtime.Serialization.Formatters;
  using UnityEngine;
  
  public class Example : MonoBehaviour
  {
      void Start()
      {
          var settings = new JsonSerializerSettings() {
              Formatting = Formatting.Indented,
              TypeNameHandling = TypeNameHandling.All,
              TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple,
          };
  
          Debug.Log(JsonConvert.SerializeObject(new Foo(), settings));
      }
  }
  
  public class Foo
  {
      public System.Type type = typeof(void);
  }
  </code></pre>
  
  <p>This will result in the following JSON string:</p>
  
  <pre><code>{
    "$type": "Foo, Assembly-CSharp",
    "type": "System.Void, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
  }
  </code></pre>
  
  <p>As you can see, <code>FormatterAssemblyStyle.Simple</code> has been used for <code>$type</code>, but <code>FormatterAssemblyStyle.Full</code> has been used for <code>type</code>.</p>
  
  <p>This is my desired output:</p>
  
  <pre><code>{
    "$type": "Foo, Assembly-CSharp",
    "type": "System.Void, mscorlib"
  }
  </code></pre>
  
  <p>How do I make both types print the same way? I haven't been able to find an answer because most search results relate to serializing private members or serializing classes <em>with</em> type information instead of serializing classes that <em>contain</em> types.</p>