故事如下:
该应用程序具有以下行
Console.WriteLine("{0}: {1}", Resource.Type, Resource.Name)
结果如下:
Möbel:Sessel
在一般情况下,“Resource.resx”可以由字符串dosens提供。我想要的是每个 Resource.ResourceStingId istruction实现以下逻辑:
如果存在,则从“Resource.user.resx”返回 ResourceStingId 的值,如果不是“Resource.resx”中 ResourceStingId 的值
赞赏的解决方案是自动化的。
谢谢!
答案 0 :(得分:0)
我得出结论,资源文件不是为这种技巧设计的实体。 调查问题发现了一些关于ResXFileCodeGenerator(http://www.codeproject.com/Articles/27473/Enhanced-Resource-File-Code-Generator-Type-safe-Fo)自定义的重复主题, 但是没有开始向这个方向挖掘,因为他认为投资不仅仅是一种好处。
还编写了一个虚拟方法,合并文件根据定义的规则。
private static void MergeResource()
{
var userDocument = XDocument.Load(@"resource.user.resx");
var userData = userDocument.Root.Elements().Where(e => e.Name == "data");
var originalDocument = XDocument.Load(@"resource.resx");
var origData = originalDocument.Root.Elements().Where(e => e.Name == "data");
var notMatchedData = origData.Where(oe => userData.All(ue => ue.Attribute("name").Value != oe.Attribute("name").Value));
foreach (var data in notMatchedData)
userDocument.Root.Add(data);
userDocument.Save("Resource.resx", SaveOptions.None);
}