2012-03-29 19 views
1

C#を使用して、リソースファイルを逆引き参照する必要があります。私は、ResourceManagerクラスを使用して文字列値を取得する方法を知っていますが、私は今逆にしたいです。まずリソースファイルをxmlファイルにロードする必要がありますか?リソースファイルの逆引き?

私がこれをやりたい理由は、英語で書かれたハードコーディングされた列挙体があり、私のリソースファイルに英語からスペイン語のキーと値が含まれているからです。私のコードがWorkflowSupport.Completed enumを探しているのにワークフローが "Completed"ではなく "Terminado"を返すと失敗します。私は特にやろうとしています何

は次のとおりです。

私はワークフローがであるステップを返すのSharePointワークフローを持って、私はこのワークフローをローカライズされたので、代わりにそれは「Terminado」を返します「完了」返すのでてきました。 。ワークフローのさまざまな状態(Completed、Cancelled、Reassigned、Terminated、Processing)に一致する5つのハードコーディングされた値を持つ列挙型があります。ワークフローは「完了」ではなく「Terminado」を返すため、コードでは「Terminado」を列挙値のいずれかに一致させることはできず、失敗します。私は私のリソースファイルで逆引き参照したいので、 "Terminado"のような値を得たら、 "Completed"を返し、それを列挙メンバ "Completed"に合致させることができます。

これを行うには良い方法があれば、私はすべての耳をしています:)

+0

enum名とローカライズ可能な文字列値を比較していますか? – digEmAll

+0

はい、列挙型で.ToString()メソッドを使用します。しかし、ローカライズされた文字列はスペイン語になり、列挙は英語で行われるので失敗します –

+0

しかし、なぜあなたはこれをやっていますか? enumの値を "COMPLETED"と呼び、EN: "Completed"、esp: "Terminado"という2つの値でリソースキーを "COMPLETED"することはできません。したがって、文化に依存しないキー "COMPLETED"によってリソースにアクセスできますか? – digEmAll

答えて

1

代わりにあなたがそれらの値を比較する必要が列挙型の文字列値を比較します。

たとえば、コンボボックスで作業している場合、各項目のテキストと値(列挙型の数値)があり、ユーザーはテキストを選択して値を列挙型にキャストし直します。

フォームまたはWPFを使用していますか?

+0

OPはwinformsコントロールではなく、SharePointワークフローを使用しています。 – digEmAll

関連する問題