русский
Germany.ruForen → Архив Досок→ Programmierung

.NET ресурсы в базе данных или в resx?

25.10.21 15:16
.NET ресурсы в базе данных или в resx?
 
alex445 старожил
Zuletzt geändert 25.10.21 15:23 (alex445)

Локальное приложение.


В базе данных можно к ресурсам атрибуты приписать (таблицу создать для каждого типа), потом запросы делать по атрибутам. Но сложно - надо всё это делать, возиться.


В resx никакие атрибуты задать нельзя, есть лишь имя ресурса, его значение (строка, картинка и т.д.) и комментарий. Но просто, потому что вся инфраструктура уже встроена - достаточно добавить resx файл и легко потом из него доставать данные, не создавая подключение к БД (пусть даже локальной).



Например, хочу хранить локализованные строки. По концу имени файла определяется локаль:



Менеджер ресурсов сразу достаёт из нужного файла, основываясь на текущей культуре запущенного приложения:


var rm = new System.Resources.ResourceManager(resourceType);

rm.GetString(resourceName);


GetString returns the value of the resource localized for the caller's current UI culture, or null if name cannot be found in a resource set.


Культуру можно принудительно переключить при запуске:


Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");


Кто как обычно делает? Вообще, это нормальная практика хранить в resx много больших картинок, или считается устаревшим, и сейчас всё через БД делается?

 

Sprung zu