c# - 序列化为 json 时 .resx 属性的默认回退
问题描述
当我们使用.resx
资源文件时,每个文件通常有几种语言。
例如:
Settings.resx
, Settings.he.resx
,Settings.fr.resx
等等...
框架将.net
根据当前文化使用相关文件。
如果缺少某个属性Settings.he.resx
,它将在 default 中搜索它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
是 ref Settings.resx
):
var jsResources = GetResourcesAsJsObject(Settings.ResourceManager);
解决方案
推荐阅读
- elasticsearch - Geoip插件不适用于filebeat
- angular - 打字稿类继承
- javascript - TypeError:无法读取未定义的 jQuery/PnP 的属性“地图”
- javascript - Mapping a list of lat, long points to x, y in java: is there a cleaner way to do this?
- google-cloud-ml - 基于 TPU 的 CloudML 调优
- javascript - 为什么我只返回第一个数组元素?
- bash - 将 bash 列表传递到 applescript(使用 osascript)
- windows - 如何在 LabVIEW 中获取所有 Windows 服务?
- r - R 自组织地图 - 使用拟合的无监督 SOM 预测新数据
- c# - 通过 LDAP 登录时获取用户 AD 组