Expando est un dynamic
auquel des membres peuvent être ajoutés (ou supprimés) au moment de l'exécution. dynamic
est conçu pour permettre à .NET d'interagir avec les types lors de l'interfaçage avec des langages à typage dynamique tels que Python et JavaScript.
Donc, si vous avez besoin de gérer un type dynamique : utilisez dynamic
et si vous devez gérer des données dynamiques telles que XML ou JSON : utilisez ExpandoObject
La déclaration d'un expando montre la relation entre la dynamique et l'expando :
dynamic expando = new ExpandoObject();
Et la possibilité d'ajouter une nouvelle propriété :
expando.SomeNewStringVal = "Hello World!";
Cette dernière ligne de code crée une toute nouvelle propriété de chaîne dans l'objet expando appelée SomeNewStringVal
. Le type de chaîne est déduit de l'affectation.
Un expando est donc un type de données dynamique qui peut représenter des données changeant de façon dynamique. C'est tout en résumé. Voici un aperçu plus approfondi de la dynamique et de l'expansion. .
Exemple complet :
using System;
using System.Dynamic;
class Program
{
static void Main(string[] args)
{
dynamic expando = new ExpandoObject();
expando.SomeNewStringVal = "Hello Brave New Whirrled!";
Console.WriteLine(expando.SomeNewStringVal);
// more expando coolness/weirdness:
var p = expando as IDictionary<String, object>;
p["A"] = "New val 1";
p["B"] = "New val 2";
Console.WriteLine(expando.A);
Console.WriteLine(expando.B);
}
}