.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!