Maison >développement back-end >C++ >Comment récupérer les propriétés et les valeurs d'un objet dynamique .NET 4 ?
Récupération des propriétés d'objets dynamiques dans .NET 4
Les objets dynamiques déclarés à l'aide du mot-clé dynamic
dans .NET 4 peuvent poser des problèmes lors de la tentative de récupération des valeurs de propriété via la réflexion.
Question :
Comment obtenir un dictionnaire de noms d'attributs et leurs valeurs correspondantes à partir d'un objet dynamique ?
Exemple :
<code class="language-csharp">dynamic s = new ExpandoObject(); s.Path = "/Home"; s.Name = "Home"; // 如何枚举 Path 和 Name 属性并检索它们的值? IDictionary<string, object> propertyValues = ???</code>
Réponse :
Pour ExpandoObject
objets, la solution est très simple. ExpandoObject
implémente l'interface IDictionary<string, object>
pour ses propriétés :
<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>
Veuillez noter que cette méthode peut ne pas fonctionner pour tous les objets dynamiques. Pour les objets dynamiques plus généraux, vous devez utiliser le DLR via IDynamicMetaObjectProvider
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!