title: Serialize byte array in JSON.NET without $type
body: <p>I would like to serialize all my contract with $type reference using TypeNameHandling.Objects. However when using this flag, all byte arrays (byte[]) are serialized using $value+$type. I still want Base64 encoding but without $type. For example, for the following contract:</p>
  
  <pre><code>class MyClass
  {
    public byte[] MyBinaryProperty {get;set;}
  }
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>{
    "$type": "MyLib.MyClass, MyAssembly",
    "MyBinaryProperty": {
      "$type": "System.Byte[], mscorlib",
      "$value": "VGVzdGluZw=="
    }
  }
  </code></pre>
  
  <p>I want:</p>
  
  <pre><code>{
    "$type": "MyLib.MyClass, MyAssembly",
    "MyBinaryProperty": "VGVzdGluZw=="
  }
  </code></pre>
  
  <p>Is it possible to serialize all objects via JSON.NET with $type excluding byte arrays? Can I do this without adding any attributes to the contracts (i.e. I want to only alter serializer settings).</p>