내부적으로는 사전이지만 사용자 정의 동적 개체는 컴파일 타임 속성 인 것처럼 값에 액세스 할 수 있습니다.동적 개체에 대한 메서드 멤버 액세스는 TryGetMember를 호출합니다.
그냥이 (더 이하)이다 :
public class Dummy : DynamicObject, IEnumerable<KeyValuePair<string, object>>
{
private readonly Dictionary<string, object> _values...
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = _values[binder.Name];
return true;
}
...
설정 및 고급 '속성'작품지고, 그러나 나의 목적은 기술적으로 IEnumerable<'1>
를 구현하기 때문에, 나는 그것을 IEnumerable<'1>
에서 메소드를 호출하고 싶습니다.
그러나 내가 전화 할 때마다.
The key 'Count()' was not present in the dictionary.
이 주위에 얻을 수있는 방법이 있나요 : Count()
는 TryGetMember
는 이해가되지 않습니다 물론 어떤 호출됩니다?
문제점을 복제 할 수 없습니다. 'Count() '를 호출하는 방법을 보여줄 수 있습니까? –
또한 'Count'는'IEnumerable'의 메소드가 아닙니다. 컴파일러가 정적 메소드 인'Enumerable.Count'에 대한 호출로 변환하는 _extension 메소드입니다. –