Nome della proprietà alternativo durante la deserializzazione

In riferimento a questa domanda:

Come posso cambiare i nomi delle proprietà durante la serializzazione con Json.net?

Certo, fantastico, ma posso avere la torta e mangiarla?

Quello che sto cercando è un modo piacevole per gli occhi di avere un nome alternativo per una proprietà in modo tale che la stringa possa contenere entrambi.

Qualcosa di simile a:

[BetterJsonProperty(PropertyName = "foo_bar")] public string FooBar { get; set; } 

Entrambi

 { "FooBar": "yup" } 

e

 { "foo_bar":"uhuh" } 

deserializzare come previsto.

Come soluzione con nessun attributo funzionerebbe o un attributo sulla class come:

  [AllowCStylePropertyNameAlternatives]