gpt4 book ai didi

c# - c#中全局资源的最佳实践

转载 作者:太空狗 更新时间:2023-10-29 20:41:30 25 4
gpt4 key购买 nike

当我们想要为所有用户(使用不同语言)制作我们的应用程序时,我们需要一种全局化的技术。
在 C# 中我们使用 ResourceManager如下:

using System;
using System.Reflection;
using System.Resources;

public class Example
{
public static void Main()
{
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources" ,
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");

Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine("{0} {1}!", greeting, name);
}
}
// The example produces output similar to the following:
// Enter your name: John
// Hello John!

程序集有两种或多种语言资源:
大会
|--Assembly.zh-cn.resx
|--程序集.zh-cn.resx

然后我们通过更改线程文化信息来使用不同的资源来存档以更改资源。

如果应用程序有很多dll(程序集)文件。
我想为应用程序提供一个点(一种语言的一个资源文件),
我的想法有好的解决方案吗?

之前我只是更改 View (例如 Winform 或 UserControl)的 Language 以针对相应的语言实现不同的 UI。

最佳答案

只需使用您描述的方式在 C# 中构建国际化。但作为构建过程的最后一步,您可以运行 Fody.Costura .

这会将所有不同的 dll 打包到您的应用程序中,这样您就只有一个包含所有内容的 .exe 文件。

好处是您可以按预期使用 C# 国际化框架而无需任何黑客攻击,但您仍然可以获得可以交付给客户的单个 exe。

关于c# - c#中全局资源的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198800/

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