首页 >后端开发 >C++ >如何从 .NET 4 动态对象检索属性和值?

如何从 .NET 4 动态对象检索属性和值?

DDD
DDD原创
2025-01-22 23:17:15173浏览

How to Retrieve Properties and Values from a .NET 4 Dynamic Object?

在 .NET 4 中从动态对象检索属性

在 .NET 4 中使用 dynamic 关键字声明的动态对象在尝试通过反射检索属性值时可能会带来挑战。

问题:

如何从动态对象中获取属性名称及其对应值的字典?

示例:

<code class="language-csharp">dynamic s = new ExpandoObject();
s.Path = "/Home";
s.Name = "Home";

// 如何枚举 Path 和 Name 属性并检索它们的值?
IDictionary<string, object> propertyValues = ???</code>

答案:

对于 ExpandoObject 对象,解决方案非常简单。ExpandoObject 为其属性实现了 IDictionary<string, object> 接口:

<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>

请注意,此方法可能不适用于所有动态对象。对于更通用的动态对象,您需要通过 IDynamicMetaObjectProvider 使用 DLR。

以上是如何从 .NET 4 动态对象检索属性和值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn