从 SQL 表生成 C# dll

本文关键字:dll SQL | 更新日期: 2023-09-27 18:35:15

我有一个包含三列的SQL表:Id,英语和挪威语。Id 是主键。在我的应用程序中,我有一个标志(EN/NO)来决定将哪种语言用于GUI中的标签,按钮++。现在,应用程序每次加载时都会执行 select *,并且应用程序在运行时查找所有必需的值。但是,我想导出这些值并创建一个 dll,以便我可以在本地存储这些值,而不是为每个实例加载整个数据集。

是否有可能在代码中创建此代码,以便 dll 在每次构建时自行更新?还是我必须运行一些外部程序来动态创建 ex. 一个.cs代码以复制/粘贴到我的类中?(我需要能够重新运行该过程,因为每次需要新标签/文本时都会添加行)

到目前为止,我已经考虑了三种关于如何构建导出的解决方案,但对如何导出数据一无所知:

  1. 在静态上下文中保留 DataTable 的状态,并提供帮助方法来标准化获取值的方式。

  2. 创建一个包含每个唯一 ID 作为方法名称的类,以及一个参数来决定返回哪个值:

    public static class Names
    {
      public static string 12345(string language)
      {
        switch (language)
        {
            case "EN":
                return "Hello";
            case "NO":
                return "Hei";
            default:
                return "Hello";
        }
      }
    }
    
  3. 创建一个类,其中包含每种语言的可搜索列表,ID 作为键和值(作为值)

从 SQL 表生成 C# dll

为什么不为不同的语言创建不同的资源文件,并根据设置加载相应的资源文件。您可以使用 System.Resources.ResourceManager .本文在此处详细解释了这一点。

编辑:以下SO帖子还详细讨论在C #/WinForms中制作多语言应用程序的最佳实践?

不,我不喜欢将国际化字符串放入类库的想法,为什么您不只使用框架中已经内置的 .NET 国际化功能?

资源文件是最好的解决方案,而不是此类工作的类库......