是否有一个VB等同于java中的org.springframework.context.support.ResourceBundleMessageSource包?
我没有关注Spring这个问题。我想知道是否有办法有一个消息属性文件,我可以通过hat java包传递变量。
以下是我想要做的一个例子。
在属性文件中包含以下行:
success.message = Successfully created document with Trans No. {0}
在源代码中有这一行:
ResourceBundleMessageSource.getMessage("success.message",new String[] {transObject.getTransId()}, null));
此代码使用属性文件查找success.message并传递getTransId().
我想这样做来集中我的所有错误消息。并且在我的代码中没有硬编码消息。
VB中有某种等价物吗?
答案 0 :(得分:2)
一种解决方案是使用资源文件。通过右键单击项目并选择项目属性来添加资源。然后单击资源,添加新资源。
我们从问题中的例子开始工作: 对于资源,我们无法遵循上面所示的sam命名约定。我们需要更换'。'用'_'表示:success.message - > success_message 资源文件不允许'。'在密钥名称中。
接下来我们需要将消息放入资源文件中。 “{0}成功提交了该文件。” 我们使用{0} .... {x}作为变量的占位符。
资源选项卡中的第一行应如下所示
success_message | {0} successfully submitted the file.
替换占位符的功能应如下所示:
Public Shared Function messageRetriver(ByVal message As String, ByVal variables As String()) As String
Dim i As Integer
Dim pattern As String
For i = 0 To variables.Length - 1
pattern = "\x7B" & i & "\x7D"
Dim myRegex As New Regex(pattern)
message = myRegex.Replace(message, variables(i))
Next
Return message
End Function
现在在您的代码中,您所要做的就是调用此函数传递资源和变量的字符串数组。
Utility.messageRetriver(My.Resources.success_message, {"My Program"})
这应该可以解决问题。 我使用this作为资源来编译这些信息。