2011-09-22 111 views
3

我正在尋找一種方法來在Azure表存儲中創建實質上是動態的對象。換句話說,除了TableServiceEntity所需的基本類外,它們沒有定義暴露屬性的類結構。換句話說,就像一個JSON對象。有沒有人做過這樣的事情?Azure表存儲和動態TableServiceEntity

+0

如果您直接使用REST API,您可以免費獲得這個,您只需自己構建xml負載。您是否試圖通過.Net存儲客戶端庫訪問表存儲? – knightpfhor

回答

0

是的,我剛剛在表上有一個名爲'Value'的屬性,我用它來存儲JSON字符串。它工作得很好,只要你不想在查詢中使用它。

編輯

我已經創建了一個小文庫用於使用動態類型(或字典)與表存儲。這裏可以看到(請參閱DynamicTableContext):https://github.com/richorama/AzureSugar

0

如果您希望在.Net代碼中實現此目標,我可以建議您查看CodePlex上Azure存儲資源管理器的源代碼(http://azurestorageexplorer.codeplex的.com /)。我認爲這個類的名字是GenericEntity。

0

我正在開發一個開源的客戶端,它可以完全實現這一點。

表存儲服務是模式免費的,但提供的.NET客戶端不公開它,它甚至不模仿REST API使得很難遵循現有的API文檔。

With Cyan我試圖提供一個使用.NET 4動態特性的服務的「泄漏抽象」(喜喬!)。

這仍然是一個正在進行的工作,但是如果你願意,你可以使用一些代碼。

-1

我寫了一個客戶端,它支持使用字典來保存名稱/值對的動態(未指定)列。它還支持許多其他功能,如陣列,枚舉和大於64K的數據。

您可以通過NuGet從http://www.lucifure.com下載Lucifure Stash。

+0

Dude你寫了我讀過的最奇怪的C#代碼,這種編碼風格的任何特定原因?我很樂意知道它的好處 – Calin

+1

我同意格式化很奇怪:)。你覺得代碼構造也很奇怪嗎? 我想要一個一致的格式化樣式,它支持複雜的表達式,並且不需要需要水平滾動的長行。 我避免使用變量,除非它們確實是變量值持有者,並且需要多次使用;所以我傾向於直接將代碼注入爲函數參數值。最終我發現額外的空白空間,列對齊,縮進和鏈接中斷使我能夠輕鬆地區分更復雜表達式中的子表達式,並更好地掌握代碼結構。 – hocho

+0

@Lucifer謝謝你的解釋,我花了一些時間去研究這些例子,我想我可以習慣它,你提出了一些有效的觀點。 – Calin