Obtenir l'erreur "Impossible d'ajouter ou de supprimer des éléments de Newtonsoft.Json.Linq.JProperty" dans Json.net

Donc je suis en train de contrôle de la désérialisation par la lecture d'un objet json comme un JObject, la suppression de certains champs, puis la désérialisation de nouveau à mon objet cible à l'aide de Json.Net. Le problème est, à chaque fois que j'essaie de supprimer un champ, j'obtiens l'erreur:

Une exception non gérée du type 'Newtonsoft.Json.JsonException'
s'est produite dans Newtonsoft.Json.dll

Informations supplémentaires: Impossible d'ajouter ou de supprimer des éléments de
Newtonsoft.Json.Linq.JProperty.

Voici mon (simplifié, mais encore la cause de l'erreur) code:

JToken token = (JToken)JsonConvert.DeserializeObject(File.ReadAllText(fileName));

foreach (JToken inner in token["docs"])
{
    if (inner["_id"] != null)
        inner["_id"].Remove();

    MyObject read = new MyObject();
    JsonConvert.PopulateObject(inner.ToString(), read);
    Values.Add((MyObject)JsonConvert.DeserializeObject(inner.ToString(), typeof(MyObject)));
}

Le json est un fichier très volumineux, où les docs tableau contient de nombreux éléments comme suit (nouveau simplifié pour plus de clarté):

{
    "docs": [
        {
            "Time": "None",
            "Level": 1,
            "_id": "10208"              
        },
        {
            "Time": "None",
            "Level": 1,
            "_id": "10209"
        }
    ]
}

Sinon, si il ya une meilleure façon pour désérialiser JSON pour un type spécifique, mais encore ignorant des champs supplémentaires, ce qui serait une alternative idéale.

source d'informationauteur Miguel