![](/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.