gpt4 book ai didi

c# - 如何覆盖Resources.Designer.cs中默认的System.Resources.ResourceManager?

转载 作者:行者123 更新时间:2023-12-02 02:25:08 25 4
gpt4 key购买 nike

我想从 Resources.Designer.cs 文件覆盖 System.Resources.ResourceManager 以实现自定义 ResourceManager.GetString(...) 方法功能。这可能吗?

最佳答案

我创建了一个 CustomResourceManager 来覆盖 GetString() 调用,如下所示:

public class CustomResourceManager : ResourceManager
{
public CustomResourceManager(Type resourceSource)
:base(resourceSource)
{
}

public CustomResourceManager(string baseName, Assembly assembly)
: base(baseName, assembly)
{
}

public CustomResourceManager(string baseName, Assembly assembly, Type usingResourceSet)
: base(baseName, assembly, usingResourceSet)
{
}

public override string GetString(string name)
{
// your business logic
}

public override string GetString(string name, CultureInfo culture)
{
// your business logic
}
}

然后,我在项目中添加了一个预构建步骤,以在生成的 Resource 中用我的 CustomResourceManager 替换 System.Resources.ResourceManager 的创建。 Designer.cs 文件:

powershell -command "(gc ..\Resources\Resource.Designer.cs).Replace(\"new global::System.Resources.ResourceManager\", \"new CustomResourceManager\") | set-content ..\Resources\Resource.Designer.cs -Encoding UTF8"

我们出发吧!

关于c# - 如何覆盖Resources.Designer.cs中默认的System.Resources.ResourceManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8337998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com