ResXFileCodeGenerator - 覆盖输出(想要使用自定义资源管理器)

2024-01-26

我创建了一个继承自 ResourceManager 的类。我的问题是,如果我更改 Resources.Designer.cs 来使用它,

e.g.

private static global::System.Resources.ResourceManager _resourceManager;

to

private static global::MyProject.Resources.MyResourceManager _resourceManager;

它被 ResXFileCodeGenerator 覆盖并设置回默认值System.Resources.ResourceManager.

我不想关闭 ResXFileCodeGenerator。但有什么方法可以告诉它ResourceManager使用类?

我被告知要查看 ResXFileCodeGeneratorEx,但无法真正看出它在这方面有何不同。


有点晚了,但使用反射你可以解决这个问题。我将此代码放入 Startup.cs 文件中。

var innerField = typeof(Resources.Resources).GetField("resourceMan",
    BindingFlags.NonPublic | BindingFlags.Static);

if (innerField != null)
{
    innerField.SetValue(null,
        new ExtendedResourceManager("MyNamespace.ResourceFileWithoutResx",
            typeof(Resources.Resources).Assembly));
}

因为设计器生成的文件是所有人都可以看到的,所以只需修改我根据 ResourceManager { get; 编写的代码即可。为您生成的代码。

您可以创建自己的扩展资源管理器类并根据需要覆盖所有属性。

快乐编码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ResXFileCodeGenerator - 覆盖输出(想要使用自定义资源管理器) 的相关文章

随机推荐