2011-07-01 65 views
0

是否存在與java中的org.springframework.context.support.ResourceBundleMessageSource包相當的VB?消息屬性文件

我不關注春天這個問題。我想知道是否有一種方法可以通過使用帽子java包來傳遞變量,如消息屬性文件。

這是我想要做的一個例子。

在屬性文件中具有以下行:

success.message = Successfully created document with Trans No. {0} 

在源代碼中有這樣的線:

ResourceBundleMessageSource.getMessage("success.message",new String[] {transObject.getTransId()}, null)); 

此代碼使用屬性文件發現success.message並傳遞從getTransId().可變

我想這樣做來集中所有的錯誤信息。並且在我的代碼中沒有硬編碼的消息。

在VB中是否有某種等價物?

回答

2

一個解決方案是使用資源文件。通過右鍵單擊項目並選擇項目屬性來添加資源。然後點擊資源,並添加一個新的資源。

我們從問題中的例子開始工作: 有了資源,我們就無法像上面看到的那樣遵循山姆命名約定。我們需要替換'。'與'_'即ie: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作爲資源來編譯這些信息。