¿Estoy usando DataContractJsonSerializer o Json.net en mi api de web 2?

después de preguntar estopregunta Estaba tratando de entender todo lo relacionado con esta serialización en la API 2 y lo leíhttp://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization

Pero ahora estoy confundido

1 En mi webapiconfig no tengo estas lineas.

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;

Así que supongo que estoy usando el serializador Json.net, que es el predeterminado. De todos modos, aún puedo usar el DataContract en una clase y, por lo tanto, solo se serializarán las propiedades decoradas con el atributo DataMember. ¿Son estas dos suposiciones correctas?

2 Si no decoro una clase con DataContract, todas las propiedades serán serializadas. Esto le sucede tanto a Json.net como a DataContractJsonSerializer

3 Si cambio (como en la pregunta que vinculé), el resolvedor que el serializador todavía usa, ¿es porque Json.net una o una cosa no está relacionada con otra? Porque si uso esto en el Global

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

incluso si no plantea ningún problema, no parece que lo detecte (ni utiliza un resolución de contrato personalizada)

3 En caso de que tenga una clase que se derive de otra y decore la principal con DataContract, me parece que tengo que decorar las propiedades del niño con DataMember para su serialización. ¿O estoy haciendo algo mal?

Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta