2012-07-30 52 views
3

我有一個存儲過程調用返回記錄集提前領域未知。由於一些互操作性的原因,我需要使它在3.5上工作,所以我沒有任何動態的支持。 是否有一些內置的小巧玲瓏解決方案?我自己沒有找到任何東西。 如果沒有這樣的解決方案,它是否有意義(並且它是否工作)來動態創建一個暴露我將獲取的屬性的類型? 編輯 我設法通過在c#3.0中創建一個動態對象來添加一個完全外部的解決方案(不調整原始代碼庫)。 Here is the extension dapper code and here the factory for the dynamic object動態結果集3.5上的精簡版

回答

2

嗯,其實短小精悍的dynamic支持是通過ExpandoObject,這是基本上只是一本字典來實現。調整現有的代碼很容易,以返回IDictionary<string,object>而不是dynamic在3.5的情況下

+0

同意,但假設我不想觸摸代碼,那麼我提出的想法呢? – 2012-07-30 12:42:09

+0

@FelicePollano我真的不想爲'TypeBuilder'路線而去。這裏的用例是什麼?你想用這些物體做什麼? UI數據綁定? (根據你傾向於強類型,在這裏採取野性刺探) – 2012-07-30 12:48:32

+0

用例有點c ** p,正在調用SP並從結果中選擇一個字段。要調用的SP和要選擇的字段都來自另一個查詢。我同意這將是很好的IDictionary <>,但我更喜歡不必處理修改後的簡潔代碼庫... – 2012-07-30 12:56:55