vb.net - 消息属性文件

标签 vb.net error-handling

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/

相关文章:

asp.net-mvc - 使用 MVC Contrib 测试 ASP.NET MVC 路由

python - 在列表中找到非唯一值时接收错误代码

javascript - 是否可以运行JavaScript(NodeJS)命令/函数,并在出现错误时让程序继续运行?

javascript - 如何在浏览器控制台中禁用Javascript错误消息?

java - Akka 消息为空

asp.net - 在 ASP.net 中通过 ID 属性访问服务器端控件

vb.net - 使用SQLDataReader而不是记录集

vb.net - 套接字编程 VB.NET - 无限期地读取 block

ios - 使用 AVFoundation 终止应用程序错误的自定义相机 - SWIFT 4

vb.net - 提交后重定向获取 (PRG) 摘要页面