我正在创建一个类库,其中包含我经常在我开发的应用程序中使用的所有自定义类。这个库被编译并作为参考添加到我的每个应用程序中,使我能够调用库中包含的自定义类。
我的库中的自定义类包括多层继承,但它们最终都起源于我称为“Alpha”的基类。在那个类中,我还保存了我的连接字符串,以便它被库中的所有其他类继承。许多类都大量使用 ADO 与 SQL 数据库进行通信,因此让所有类都可以使用连接字符串是必不可少的。
我遇到的问题是,我想与我的类库一起使用的每个应用程序都有自己的数据库,因此每个应用程序都需要一个唯一的连接字符串。因此连接字符串不能包含在我的类库中,因为这意味着我使用我的类库的所有应用程序都将寻找相同的 SQL 数据库。但是,如果我从“Alpha”类中删除连接字符串,则类库将无法编译,因为其所有使用 ADO.NET 的方法都在寻找该连接字符串。
它有点像鸡和蛋的场景。
即我需要 Alpha 类中的连接字符串才能编译类库。即连接字符串不能在类库中,因为我需要它对每个应用程序都是唯一的
我能想到的唯一解决方案是为我的类库中使用 ADO 的每个方法提供一个参数来保存连接字符串,然后可以从应用程序代码中传递该字符串。但这似乎不是克服这个问题的非常简洁的方法。
理想情况下,我想要的是每个应用程序中的一个位置来存储连接字符串。然后我需要某种方式在我的类库中引用这个位置,即使在编写我的类库时该位置将不可用(因为它在单个应用程序中)。