So I\'m trying to deserialize an object that has properties: $ref and $id. I have tried going between Dictionary as well as an object where I have specified namingconvention
You'll find that $ref & $id are special properties used by Json.NET to manage multiple instances of objects in a single object graph.
$ref
$id
By putting these keys into your dictionary the deserialize process is trying to parse these as references to objects that don't exist.
Try altering the keys.