使用数据集向导添加数据集时如何引用app.config连接字符串?

时间:2011-08-23 15:25:00

标签: visual-studio-2010 dataset connection-string app-config class-library

每当我使用向导在我的类库项目中添加数据集时,它为我提供了一个选项,可以将连接字符串保存在app.config文件中,选择该选项后,它会将字符串保存在文件中,但是当我检查数据集设计器时始终将其保存在项目属性对象中:

private void InitConnection() {
            this._connection = new global::System.Data.SqlClient.SqlConnection();
            this._connection.ConnectionString = global::BaseClassLibrary.Properties.Settings.Default.DBConnectionString;
        }

这不是那么有用,因为当我尝试使用这个项目dll并通过在web.config或app.config中写入来覆盖连接字符串时...它没有引用它......

并且有一个有趣的事实是,如果您按照web项目中使用向导添加数据集的相同过程,那么它实际上会引用web.config以获取连接字符串...这有点奇怪......并且在Web项目数据集中t生成设计师类......

无论如何我能做出欲望行动吗?

1 个答案:

答案 0 :(得分:1)

属性类型是应用程序和用户特定设置的包装,如here所述。

您似乎正在尝试从库程序集(.dll)获取配置设置,而不是从引用库的应用程序/站点获取配置设置。我猜这是基于你使用这个属性的事实:

global::BaseClassLibrary.Properties.Settings.Default.DBConnectionString;

在引用的程序集需要来自正在运行的应用程序/站点的配置设置的情况下,我通常会这样做:

  1. 在核心库中创建AppNameApplication静态类型(即,具有很少或没有其他自定义依赖项的程序集)
  2. 为整个配置(如果使用自定义ConfigurationSection)或所需的每个设置创建属性。
  3. 在应用程序开始时初始化此静态类(main或Global.Applicaton_Start)
  4. 从库程序集类型引用AppNameApplication以访问这些配置设置。
  5. 请注意,此静态类型需要在您的某个核心库中定义,因为您无法使用循环引用:App - Library - App。

    希望这有帮助。