![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| makaka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Всем привет
Встала необходимость забить в приложение много строк для пользовательского интерфейса. Делаю приложение Silverlight - там есть возможность вставлять файлы .resx В файлах есть возможность вставлять пары ключ-значение Для извлечения значения нужно в коде прописывать ключ... При этом сам ключ нельзя использовать в качестве значения... к сожалению это не всегда подходит. У меня есть необходимость вбить названия валют и их кодировки: "rur" - "российский рубль" "eur" - "евро" и т.д. Всего около 100шт. Сохранять эти значения и ключи в .resx, потом писать в коде сто строк на каждую валюту в отдельности - маразм... Очевидно, что необходимо хранить эти строки так, чтобы можно было пройтись по ним foreach, вытаскивая две строки - ключ(rur) и значение(российский рубль) Как цивилизованно сохранять пары типа ("rur" - "российский рубль"), чтобы можно было использовать в пользовательском интерфейсе и ключ, и значение? |
|||
|
||||
| AlexNagits |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
Dictionary<string, string> не подойдет?
Сохранение: сериализация Можно "пройтись по ним foreach" Это сообщение отредактировал(а) AlexNagits - 19.7.2011, 23:22 |
|||
|
||||
| makaka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Проблема в том, что это будет забито непосредственно в код. Правильнее иметь отдельный файл (типа предоставляемого по умолчанию .resx, который построен на XML разметке и открывается многими редакторами), в котором будут эти значения. Так их проще редактировать, они отделены от логики. На перевод в конце концов можно отдать спокойно. Еще нужно иметь инфраструктуру, которая будет эти данные считывать. Для .resx VS2010 сама генерирует весь код. Вручную делать не хочется. Но к сожалению если в .resx забить пару ("rur" - "российский рубль"), то будет сгенерирован метод аля ApplicationStrings.get_rur(), который будет возвращать "российский рубль". А мне нужно использовать в интерфейсе не только "российский рубль", но и "rur"... |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 5 Всего: 40 |
Сериализуй в xml.
Да да, дикшенери на прямую не сериализуется в xml, но пути есть всегда, буквально на днях видел дикшенери который сериализовался |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
ну потому что это две разные строки одна длинное название, второе - короткое. Локализация методами сателиных сборок достаточно удобна.... чем она вам не нравится? Если вы взглянете внутрь ApplicationStrings.get_rur() то там просто вызывается ResourceManager с передачей ему строки-ключа.... Ну и "пройтись" тоже можно как по коллекции - посмотрите его методы -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| eugene123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.8.2011 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |