gpt4 book ai didi

vb.net - 消息属性文件

转载 作者:行者123 更新时间:2023-12-03 08:15:52 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com