這可能是一個容易的,但我真的沒有得到它。鑄造WebMatrix DynamicRecord或檢索底層的IDictionary <string,object>
據我的理解: 最dynamic
類型的插件C#依靠IDictionary<string,object>
我做了一個WebMatrix.Data秒殺,我想我的結果轉換爲IDictionary<string,object>
但這並不工作... WebMatrix.Data查詢返回IEnumerable<DynamicRecord>
這是我嘗試投...
這裏是我的naiv代碼...
var o = (DynamicObject) webmatrixRecord; // No Exception but o is still DynamicRecord
var o = (IDictionary<string,object>) webmatrixRecord; // Runtime Binder Exception
var o = ((IDictionary<string,object>)((DynamicRecord)webmatrixRecord)) // InvalidCastException;
那麼什麼是投射動態物體的正確方法?
WebMatrix.DynamicRecord:http://msdn.microsoft.com/de-de/library/webmatrix.data.dynamicrecord(v=vs.111).aspx
Dynamics.DynamicRecord:http://msdn.microsoft.com/de-de/library/system.dynamic.dynamicobject(v=vs.111).aspx
感謝您的答覆。我選用DynamicObject只是因爲DynamicRecord從它繼承,我認爲這使我更接近: -/ 我需要從一個DynamicRecord或ExpandoObject和IDictionary的<字符串,對象> ...但因爲ü說,沒有投我寫的東西... – silverfighter
@silverfighter:是否'DynamicRecord'本身暴露出什麼?快速瀏覽後我什麼也看不到 - 所以你可能需要調用'GetDynamicMemberNames'然後'TryGetMember'來建立你的字典。 –
至於開源版本馮WebMatrix.Data說..我採取與GetDynamicMemberNames您的賭注和TryGetMember ... http://aspnetwebstack.codeplex.com/SourceControl/latest#src/WebMatrix.Data/DynamicRecord.cs – silverfighter