从SQL表构建C#dll

时间:2012-05-25 10:30:17

标签: c# sql sql-server-2008 c#-4.0 dll

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

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

到目前为止,我已经考虑过如何构建导出的三个解决方案,但没有关于如何导出数据的线索:

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

  2. 创建一个包含每个唯一ID作为method-name的类,以及一个用于决定返回哪个值的参数:

    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为键,值为(作为值)

2 个答案:

答案 0 :(得分:10)

为什么不为不同的语言创建不同的资源文件,并根据设置加载适当的文件。您可以使用System.Resources.ResourceManager执行此操作。 This article here详细解释了这一点。

编辑:关注SO帖子后也会详细讨论Best practice to make a multi language application in C#/WinForms?

答案 1 :(得分:1)

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

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