我有一個自定義的動態對象,它在內部只是一個字典,但允許訪問它的值,就好像它們是編譯時間屬性一樣。動態對象調用方法成員訪問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>
方法。
但是,每當我打電話給Count()
,TryGetMember
被調用這當然是沒有意義的:
The key 'Count()' was not present in the dictionary.
有沒有辦法來解決這個問題?
我無法複製您的問題。你能告訴你如何調用Count()嗎? – 2015-02-06 16:32:51
此外,'Count'不是'IEnumerable'上的方法 - 它是一個_extension方法,編譯器將其轉換爲對靜態方法「Enumerable.Count」的調用。 – 2015-02-06 16:33:48