2013-04-02 48 views
1

我將基於動態變量等創建MVC項目和站點的一些設置。 這些設置將存儲在xml中以方便讀取和寫入。從存儲的動態對象中創建智能感知

我現在的問題,閱讀關於這個問題延伸智能感知後:

Is it possible to provide intellisense for dynamic objects in visual studio?

是,如果它可以讀我保存的設置(存儲在運行時),然後爲下一次運行構建從這個智能感?

I.E.對於這些site.setings.layout.width中的每一個,「old」保存的xml定義的動態的列表將能夠顯示出來?

+0

你應該看看這個帖子:http://stackoverflow.com/questions/12645630/is-it-possible-to-provide-intellisense-for-dynamic-objects-in-visual-studio – MHGameWork

+0

@OP - 我假定我的答案-1來自你。你可以考慮編輯你的問題,使其更具體和明確,而不是降低那些試圖提供幫助的人。 –

+0

@AZ。其實不是,我只是將它提升到0,所以不知道誰會降低它的效果:S –

回答

1

如果您只需要xml「intellisense」,那麼就考慮設計xml模式並將它們轉儲到Visual Studio installation Folder\xml\Schemas或將它們包含在您的解決方案中,如果名稱空間匹配得當,VS將完成剩下的工作。

編輯: 過一陣子後再回來。沒有其他答案似乎已經給出,所以我會盡量更有創意。

  1. Visual Studio有一個選項可以從xml文件生成xsd。請注意,該架構將大致是一個近似值,但它將與該文件相匹配,並且對結構進行很好的描述。如果您可以通過命令行找到一種方法(或者可能爲該步驟找到類似的工具),則可以使用xsd.exe鏈接它,並在構建時從其生成C#類(預構建步驟)
  2. 如果第一點太麻煩了,你可以嘗試編寫一個T4 template,讀取以前的配置文件並根據它生成自定義代碼。使用T4生成基於xml的POCO屬性結構應該非常簡單。模板應該作爲預編譯的步驟運行。

請注意,這兩個建議都涉及靜態代碼生成。完整的動態解決方案可以使用F# type providers完成,但不適用於C#。

+0

這是否會給你的xml上的intellisense表示你的意思? 或者它會真正拿起來,當我寫例如 'site.setings.layout.width'爲每一步如果有xml的呢? –

+0

關於實際的xml。它不會幫助你在動態代碼中。也許我誤解了這個問題 –