2012-03-29 82 views
1

使用C#,我需要做一個反向查找我的資源文件。我知道如何使用ResourceManager類獲取字符串值,但我現在想要做相反的事情。我需要首先將資源文件加載到xml文件中嗎?資源文件中的反向查找?

我想這樣做的原因是因爲我有一些硬編碼的枚舉是英文的,我的資源文件包含英文和西班牙文鍵值。因此,當我的代碼正在尋找WorkflowSupport.Completed枚舉,但工作流程返回「Terminado」而不是「Completed」時,它將失敗。

什麼我特別想做的是:

我有一個SharePoint工作流返回步驟的工作流程是在我已經本地化這個工作流程,所以不用返回「已完成」將返回「Terminado」 。我有一個枚舉符合工作流程各種狀態(完成,取消,重新分配,終止和處理)的五個硬編碼值。由於工作流程返回「Terminado」而不是「Completed」,因此代碼無法將「Terminado」與任何枚舉值相匹配並失敗。我想在我的資源文件中進行反向查找,因此如果獲得像「Terminado」這樣的值,我可以返回 「Completed」併成功將其與枚舉成員「Completed」相匹配。

如果有更好的方式來做到這一點,我所有的耳朵:)

+0

您是否將枚舉名稱與可本地化的字符串值比較? – digEmAll 2012-03-29 17:20:33

+0

是的,在枚舉上使用.ToString()方法。但是,它會失敗,因爲本地化的字符串將是西班牙語,枚舉將是英文 – 2012-03-29 17:24:20

+0

但你爲什麼這樣做?你不能把你的枚舉值「COMPLETED」和你的資源鍵「COMPLETED」改爲2個值:eng:「Completed」,esp:「Terminado」。所以你可以通過文化不變的關鍵字「完成」訪問資源? – digEmAll 2012-03-29 17:29:25

回答

1

,而不是比較你要比較它們的值枚舉的字符串值。例如,如果您使用的是Combobox,則每個項目都有一個文本和一個值(enum的數值),用戶選擇文本,然後您只需將該值轉換回您的枚舉類型。

您是使用Forms還是WPF?

+0

OP使用的是SharePoint工作流程,而不是Winforms控件。 – digEmAll 2012-03-30 06:03:51