使用.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);