是否有任何方便的方法來序列化存儲在Resources.resx文件中(以多種語言)存儲的字符串的引用。我想稍後訪問它(應用程序可能已重新啓動後)並以當前活動的語言顯示它。序列化可本地化的字符串
另一個用例是將「資源項」傳遞給某種方法,例如,顯示錯誤消息(使用當前活動的語言),同時用英語記錄消息(以便我們可以對其進行調試)。
需要牢記的一點是,我們不只有一個Resource.resx文件(在這種情況下,我們可以簡單地存儲密鑰並使用ResourceManager
實例),但是其中大量的應用。
有多種用例:一個目的是避免不必要的代碼重複。這是更方便寫類似ShowMessage(messageKey)
(其中顯示消息並記錄它),而不是寫
ShowMessage(Resources.ResourceManager.GetString("Key", CultureInfo.CurrentCulture));
Log(Resources.ResourceManager.GetString("Key", CultureInfo.InvariantCulture));
這也將有一定的局部異常(有用的,這樣的組件不必須知道什麼關於ShowMessage方法)。在我的情況下,我有一些可序列化的CNC宏,我想要一些本地化的消息步驟(用戶在繼續之前必須做一些手動操作)。配置宏和執行時,語言可能會有所不同。
真的有這個需求嗎?這些資源應該用作靜態資源,動態使用它們看起來像是一種代碼異味。你可以勾畫使用情況嗎? – Santhos
因此......如果你的掛斷是每次寫出這兩行的時間過多,爲什麼不把它解壓到一個單獨的方法呢? – DrewJordan
問題是應用程序是模塊化的。我們有大約100個裝配 - 所以我們必須在每個裝配中重新定義這種方法... – LionAM