每当我使用向导在类库项目中添加数据集时,它会给我一个选项,将连接字符串保存在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。配置连接字符串…这有点奇怪……在web项目数据集不生成设计器类…
有什么方法可以让我做我想做的事吗?
属性类型是这里描述的应用程序和用户特定设置的包装器。
似乎您正在尝试从库程序集(.dll)获取配置设置,而不是从引用库的应用程序/站点获取配置设置。我猜这是基于你正在使用这个属性的事实:
global::BaseClassLibrary.Properties.Settings.Default.DBConnectionString;
在被引用的程序集需要运行中的应用程序/站点的配置设置的情况下,我通常:
- 在核心库中创建一个AppNameApplication静态类型(也就是说,一个具有很少或没有其他自定义依赖的程序集)
- 为整个配置(如果使用自定义ConfigurationSection)或为所需的每个设置创建属性。
- 在应用程序开始时初始化这个静态类(main或Global.Applicaton_Start)
- 从库程序集类型中引用AppNameApplication来访问这些配置设置。
注意,这个静态类型需要在一个核心库中定义,因为你不能有一个循环引用:App - Library - App。