繁体   English   中英

本地化Windows Foundation工作流服务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM