Json.net sérialiser un champ privé spécifique

J'ai la classe suivante:

public class TriGrid
{
    private List<HexTile> _hexes;
    //other private fields...
    //other public proprerties
}

Mon objectif est de sérialiser seulement la _hexes domaine, j'ai donc créé le suivant ContractResolver:

internal class TriGridContractResolver : DefaultContractResolver
{
    protected override List<MemberInfo> GetSerializableMembers(Type objectType)
    {
        return new List<MemberInfo> { objectType.GetMember("_hexes", BindingFlags.NonPublic | BindingFlags.Instance)[0] };
    }
}

et quand je veux sérialiser une instance de TriGrid je fais:

        var settings = new JsonSerializerSettings()
        {
            ContractResolver = new TriGridContractResolver()
        };
        var json = JsonConvert.SerializeObject(someTriGrid, settings);
        string strintJson = json.ToString();

mais lorsque je vérifie la valeur de strintJson est toujours "{}". Le _hexes a des éléments, il n'est pas vide. Si je sérialiser un particulier HexTile qu'il fonctionne comme prévu. Ce que je fais de mal ici?

source d'informationauteur Bsa0