【问题标题】:How to refer to app.config for connection string when adding dataset using dataset wizard?使用数据集向导添加数据集时如何参考 app.config 获取连接字符串?
【发布时间】:2011-11-02 01:43:27
【问题描述】:

每当我使用向导在我的类库项目中添加数据集时,它都会为我提供将连接字符串保存在 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 生成设计器类 ...

有没有我可以做的欲望行动?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    1. 在核心库中创建一个 AppNameApplication 静态类型(即,具有很少或没有其他自定义依赖项的程序集)
    2. 为整个配置(如果使用自定义 ConfigurationSection)或所需的每个设置创建属性。
    3. 在应用程序启动时初始化这个静态类(main 或 Global.Applicaton_Start)
    4. 从库程序集类型中引用 AppNameApplication 以访问这些配置设置。

    请注意,此静态类型需要在您的核心库之一中定义,因为您不能有循环引用:App - Library - App。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2012-07-18
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多