存取 .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中文網其他相關文章!