Estou usando o DataContractJsonSerializer ou o Json.net na minha web api 2
depois de perguntar issoquestão Eu estava tentando entender todas essas coisas de serialização no web api 2 e eu li issohttp://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization
Mas agora estou confuso
1 No meu webapiconfig eu não tenho essas linhas
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
Então eu suponho que estou usando o serializador Json.net, que é o padrão. De qualquer forma eu ainda posso usar o DataContract em uma classe e, portanto, apenas as propriedades decoradas com o atributo DataMember serão serializadas. Essas duas hipóteses estão corretas?
2 Se eu não decorar uma classe com DataContract, todas as propriedades serão serializadas. Isso acontece tanto com o Json.net quanto com o DataContractJsonSerializer
3 Se eu mudar (como na pergunta que eu coloquei) o resolvedor do serializador ainda o usa, é porque é uma coisa do Json.net ou uma coisa não está relacionada a outra? porque se eu usar isso no Global
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
mesmo que não apresente qualquer problema, parece que não o capta (nem usa um contracroleador personalizado)
3 No caso de ter uma classe derivada de outra e decorar a matriz com DataContract, parece-me que tenho que decorar as propriedades da criança com DataMember para serializá-la. Ou estou fazendo algo errado?
obrigado