目前我正在尝试扩展项目的默认资源(resx)。同时,有必要将其用于其他项目。所以我脑子里有仿制药,现在我不确定我的想法是否可能。
好吧,让我们解释一下。
第一个任务是为DB和resx创建一个回退机制。背后的想法是环境,它可以在DB中进行翻译,但不一定。
这是由Custom ResourceManager(使用Custom ResourceReader和ResourceSet)创建的,并将其放在一个自己的Class中。这不是什么大问题。
第二个任务是使resx的字段可用。 我已经通过将Resx作为基础来实现这一目标
internal class FallbackResource : ResxResource
{
private static global::System.Resources.ResourceManager resourceMan;
public static global::System.Resources.ResourceManager ResourceManager
{
get
{
if (resourceMan == null)
{
resourceMan = new CustomResourceManager();
}
return resourceMan;
}
}
}
通过这个,我能够创建一个“FallbackResource”类,可以访问像
这样的字段... FallbackResource.AFieldwithingApp ...
我可以在每个新项目中使用CustomResourceManager和Implement“FallbackResource”-Class ...是的你是对的:那不是那样的。
所以我认为应该可以创建一个Generic“FallbackResource”(第一次创建自己的Generics):
var fallbackResource = new GenericFallback<ProjectResxFile>;
... fallbackResource.AFieldofCurrentProject ...
在我的研究期间(我在Generics中有点新)我感觉我的想法是不可能的。我可以使用Class引用,但我不能使用引用作为基础来创建“直接字段访问”功能。
我的结论是错的还是我错过了什么?
否则我似乎不得不考虑编写扩展的“ResXFileCodeGenerator”。或者有更好的想法来完成扩展资源?
提前感谢任何建议和帮助。