java中有没有相当于org.springframework.context.support.ResourceBundleMessageSource包的VB?
这个问题我不关注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中有某种等价物吗?
最佳答案
一种解决方案是使用资源文件。通过右键单击项目并选择项目属性来添加资源。然后单击资源,并添加一个新资源。
我们从问题中的示例开始工作:
如您在上面看到的,对于资源,我们不能遵循 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作为编译此信息的资源。
关于vb.net - 消息属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551611/