![](/img/trans.png)
[英]Attributes in service class in Windows Workflow Foundation services
[英]Localizing a Windows Foundation Workflow service
我正在開發一個工作流服務,該服務最終將包含許多用於與用戶交互的不同工作流。
這樣,這些工作流將需要向用戶發布消息,並且這些消息需要本地化。
我想使用RESX文件並在啟動工作流以設置所需的區域性時添加一個額外的參數。
但是,這似乎失敗了,因為WF服務(特別是在持久性方面)會根據需要創建新線程,並且盡管一開始就設置了當前區域性(並進行了一些工作),但最終我的工作流將返回到默認區域性。
我也嘗試過設置RESX文件創建的靜態類的Culture
參數,但這似乎改變了所有正在運行的工作流程的整體文化(可能需要在不同的語言環境中運行)。
有什么辦法解決這個問題?
編輯 :
我知道我可以使用ResourceManager
類,因為我可以傳遞要使用的區域性,但是除了使用生成的類中可用的強類型資源名稱之外,我還需要使用字符串-容易出錯。
編輯2:
我忘了提一件事-但這與關於ResourceManager
的最后編輯有些聯系。 由於會有很多工作流程,所以我希望我可以設置環境和方法,讓其他精通計算機的人來制作這些工作流程(或者至少幫助他們)。 由於與用戶的溝通至關重要,因此使用資源應盡可能地容易。
嘗試設置工作流變量以保留當前區域性,並且每當需要使用它來本地化文本時,都可以從工作流變量中提取值。 如果您的工作流可以暫停,然后再在世界另一端的另一台服務器上恢復,這也可以解決偶然的機會,因此它保留了產生的原始文化。
我已經設法通過此博客文章提出解決方案。 通過修改T4模板,我得到了非靜態資源類。 接下來,我創建了一個可序列化的包裝器類,以根據工作流的需要實例化所有這些資源類。
這易於使用(使用自定義工作流操作創建資源實例),並且在工作流內部使用資源非常容易:例如resources.GeneralStrings.Timeout
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.