我有一些资源,如:
在JsResources是我的默认资源的地方,.fr.resx是法语UICulture和.en.resx在英语资源中的资源。
所有内容都与Razor正确绑定
我想检索所有资源并将其转换为Javascript资源。 我可以获得默认的resx资源,但不能获得另外两个(.fr.resx和.en.resx)
这是我的实际代码:
var resourceDictionary = new Dictionary<string, string>();
var lang = file.IncludedVirtualPath.Replace(".resx", string.Empty).Split('/').Last().Split('.').Last();
var filename = file.IncludedVirtualPath.Replace(".resx", string.Empty).Split('/').Last().Split('.').First();
var resource = GetType()
.Assembly.GetManifestResourceNames()
.FirstOrDefault(t => t.Contains($"{filename}.{lang}.resources"));
if(resource != null)
{
using (var stream = GetType().Assembly.GetManifestResourceStream(resource))
using (var reader = new ResourceReader(stream))
{
foreach (DictionaryEntry entry in reader)
{
resourceDictionary.Add(entry.Key.ToString(), entry.Value.ToString());
}
}
}
var serializedDictionary = JsonConvert.SerializeObject(resourceDictionary);
var javascript = $"var Resources = Resources || {{}};Resources.{lang}.{filename} = {serializedDictionary}";
如果我这样做:
var resourceList = GetType()
.Assembly.GetManifestResourceNames().ToList();
我可以获得默认资源(JsResources.resx),但不能获得其他两个资源。
我怎样才能做到这一点?
由于