Когда мы используем файл ресурсов .resx
, у нас обычно есть пара языков на файл.
Например:
Settings.resx
, Settings.he.resx
, Settings.fr.resx
и т.д ...
Фреймворк .net
будет использовать соответствующий файл в соответствии с текущей культурой.
Если свойство отсутствует в Settings.he.resx
, оно будет искать его по умолчанию Settings.resx
.
Таким образом, у нас есть «базовый» файл ресурсов, и мы можем переопределять определенные свойства в разных культурах.
Моя проблема в том, что я сериализую этот файл в json
(для ответа ajax
), но теряю возможность откатиться к файлам по умолчанию при пропущенных свойствах.
Есть ли способ сохранить это поведение при сериализации объекта?
Я предпочитаю сохранять сериализацию простой и не перебирать все ключи.
Это мой код сериализации:
protected JObject GetResourcesAsJsObject(ResourceManager resourceManager)
{
var resourceAsDictionary = GetResources(resourceManager);
var resourceAsJsonString = JsonConvert.SerializeObject(resourceAsDictionary);
var resourceAsJsObject = JObject.Parse(resourceAsJsonString);
return resourceAsJsObject;
}
и использовать его следующим образом (где Settings
- ссылка для Settings.resx
):
var jsResources = GetResourcesAsJsObject(Settings.ResourceManager);