Resources.designer.cs
在我们的应用程序中,文件中的静态属性有 1000 次使用。例如:
Resources.string_to_identify_the_resource
我们也有自己的类,它可以查找资源,但也允许从其他程序集中覆盖资源。如果我们有一个客户想要重命名插件或产品,这很有用,因为我们只需放入一个 dll 并完成。此类使用如下:
Resources.GetString("string_to_identify_the.resource");
我们希望通过我们自己的 Resources 类查找我们所有的资源,以便可以覆盖它们,我的任务是这样做。我不喜欢遍历和重构所有代码。
我最初的想法是使用自定义 DynamicObject:
public class Resources
{
public static dynamic Dynamic = new StaticResourcesDynamicObject();
class StaticResourcesDynamicObject : DynamicObject
{
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = GetString(binder.Name);
return true;
}
}
// Existing code to lookup resources
public static string GetString(string name)
{
...
}
}
所以
Resources.string_to_identify_the_resource
将被简单地重命名为:
Resources.Dynamic.string_to_identify_the_resource
主要问题是许多资源名称包含句点 ( .
),因此它们与静态属性不匹配。例如Cmd.Too_Much
有一个静态属性Cmd_Too_Much
.
我可以尝试获取所有不同的可能性,或者其他人有解决问题的方法吗?