Der Grund, warum kein JsonReaderException
ausgelöst wird, ist, weil doppelte Schlüssel in JSON gültig sind. Eine schnelle und schmutzige Lösung wäre ein Zähler, der jedes Mal inkrementiert wird, wenn die Eigenschaft X
Ihrer Klasse gesetzt wird. Wenn es > 1
ist, dann weißt du es.
public class Test
{
private string _x;
private int xCounter = 0;
public string X
{
set
{
if(xCounter > 1) throw new Exception("DUPES");
xCounter++;
_x = value;
}
get
{
return _x;
}
}
}
Dies wird sich natürlich fehlschlagen, wenn Sie versuchen, X
wieder nach der Deserialisierung zu setzen.
JSON.NET hat Token-Lesefunktionen. Sie können diese verwenden, um jedes Token mit zuvor gelesenen Tokens zu vergleichen. –