消息属性文件

时间:2011-07-01 18:05:42

标签: vb.net error-handling

是否有一个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中有某种等价物吗?

1 个答案:

答案 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作为资源来编译这些信息。