XSD.EXE + JSON.NET - ¿Cómo lidiar con miembros generados xxxSpecified?

Cuando se usa XSD.EXE para generar clases a partir de un esquema XML, genera miembros xxxSpecified de cualquier primitiva de un objeto dado:

<xs:complexType name ="Foo">
    <xs:all>
      <xs:element name ="Count" type = "xs:integer"/>
    </xs:all>
</xs:complexType>

.... genera:

public class Foo
{
    public int Count { get; set; }
    public bool CountSpecified { get; set; }
}

Parece que la última versión de JSON.NET puede establecer automáticamente estas propiedades al deserializar.

string request = "{ Count : 10 }";
var object = JsonConvert.Deserialize<Foo>(request)
Assert.IsTrue(object.Count = 10); // Yup
Assert.IsTrue(object.CountSpecified == true);  //Also yup - JSON.NET works!

Sin embargo, al ir hacia el otro lado, las propiedades xxxSpecified se incluyen en la salida JSON, lo cual es incorrecto, ya que no forma parte del esquema.

string request = JsonConvert.Serialize(object); 
//{  
//   Count: 10, 
//   CountSpecified : true    <-- This is incorrect - should not be output 
//}

¿Me falta alguna configuración que controle si se deben generar los atributos xxxSpecified? ¿Cómo puedo suprimirlo?

(Nota: Esta es una permutación de una pregunta respondida aquí:

JSON.NET, XmlSerializer y la propiedad "Especificada"

... pero implica crear clases de extensión, lo cual no es posible para mí, ya que hay cientos de clases en el esquema y no puedo cambiar la jerarquía de herencia. Entonces la respuesta no funcionará. Buscando otra manera.)

Respuestas a la pregunta(1)

Su respuesta a la pregunta