2012-03-29 3 views
1

Используя C#, мне нужно сделать обратный поиск моего файла ресурсов. Я знаю, как захватить строковое значение с помощью класса ResourceManager, но теперь я хочу сделать обратное. Нужно ли сначала загружать файл ресурсов в xml-файл?Обратный поиск в файле ресурсов?

Причина, по которой я хочу это сделать, состоит в том, что у меня есть некоторые жестко закодированные перечисления, которые находятся на английском языке, а файл ресурсов содержит ключи от английского до испанского и значения. Поэтому, когда мой код ищет WorkflowSupport.Completed enum, но рабочий процесс возвращает «Terminado», а не «Completed», он потерпит неудачу.

То, что я специально пытался сделать это:.

У меня есть рабочий процесс SharePoint, возвращающий шаг рабочий процесс находится в I локализовал этот рабочий процесс, поэтому вместо того, чтобы вернуться «Завершено» он вернется «Terminado» , У меня есть перечисление с пятью жестко закодированными значениями, которые соответствуют различным состояниям рабочего процесса (завершено, отменено, переназначено, завершено и обрабатывается). Поскольку рабочий процесс возвращает «Terminado» вместо «Completed», код не может соответствовать «Terminado» для любого из значений перечисления и не выполняется. Я хочу сделать обратный поиск в моем файле ресурсов, поэтому, если я получу такое значение, как «Terminado», я могу вернуть «Завершено» и успешно сопоставить его с членом перечисления «Завершено».

Если есть лучший способ сделать это, я все уши :)

+0

Вы сравниваете имя перечисления с локализуемым строковым значением? – digEmAll

+0

Да, используя метод .ToString() для перечисления. Однако это не удастся, так как локализованная строка будет на испанском языке, а перечисление будет на английском языке. –

+0

Но почему вы это делаете? Не можете ли вы назвать свое значение перечисления «ЗАВЕРШЕНО», а ваш ключ ресурса «ЗАВЕРШЕН» двумя значениями: eng: «Completed», esp: «Terminado». Таким образом, вы можете получить доступ к ресурсу с помощью ключа «COMPLETED», который является культурно-инвариантным? – digEmAll

ответ

1

Вместо сравнения строковых значений перечисления вы должны сравнить их значение.

Например, если вы работаете с Combobox, у вас есть текст и значение (числовое значение перечисления) для каждого элемента, пользователь выбирает текст, и вы просто возвращаете значение обратно в свой тип перечисления.

Вы используете формы или WPF?

+0

OP использует рабочий процесс sharepoint, а не элемент управления winforms. – digEmAll

Смежные вопросы