访问 .NET 4 动态对象中的属性值
标准反射方法不适合从 .NET 4 中的动态类型对象中提取属性值。本文提出了一种更有效的解决方案。
方法
对于基于 ExpandoObject
的动态对象,直接转换利用固有的 IDictionary<string, object>
接口:
<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>
但是,此方法仅限于 ExpandoObject
实例。 更通用的解决方案涉及通过 IDynamicMetaObjectProvider
接口利用动态语言运行时 (DLR)。 这提供了一种访问属性的机制,无论底层动态对象的结构如何。
以上是如何在 .NET 4 中高效地从动态对象中检索属性值?的详细内容。更多信息请关注PHP中文网其他相关文章!