Si vous n'avez besoin des propriétés dynamiques que pour la sérialisation/désérialisation JSON, par exemple si votre API accepte un objet JSON avec différents champs en fonction du contexte, vous pouvez utiliser la méthode JsonExtensionData
disponible dans Newtonsoft.Json ou System.Text.Json.
Exemple :
public class Pet
{
public string Name { get; set; }
public string Type { get; set; }
[JsonExtensionData]
public IDictionary<string, object> AdditionalData { get; set; }
}
Vous pouvez ensuite désérialiser JSON :
public class Program
{
public static void Main()
{
var bingo = JsonConvert.DeserializeObject<Pet>("{\"Name\": \"Bingo\", \"Type\": \"Dog\", \"Legs\": 4 }");
Console.WriteLine(bingo.AdditionalData["Legs"]); // 4
var tweety = JsonConvert.DeserializeObject<Pet>("{\"Name\": \"Tweety Pie\", \"Type\": \"Bird\", \"CanFly\": true }");
Console.WriteLine(tweety.AdditionalData["CanFly"]); // True
tweety.AdditionalData["Color"] = "#ffff00";
Console.WriteLine(JsonConvert.SerializeObject(tweety)); // {"Name":"Tweety Pie","Type":"Bird","CanFly":true,"Color":"#ffff00"}
}
}
0 votes
Ceci devrait aider, j'espère gamedev.net/topic/
0 votes
Duplication possible de Ajouter dynamiquement des propriétés à une classe