我有两个可执行文件访问包含数据访问层一个DLL对象 每个exe文件可以包含服务器上的信息和 数据库名称,连接字符串等传递连接字符串
我如何通过不同的配置配置信息到DAL对象?
很明显,我可以通过配置串到DAL对象 我每次实例化一个时间,但似乎混乱和重复作为DAL每类都需要属性的配置字符串..
谁能告诉我有没有更好的办法?
我想知道是否有一种方法让实例化的DAL对象从调用对象读取一些属性,而无需我明确地传递它们?
我有两个可执行文件访问包含数据访问层一个DLL对象 每个exe文件可以包含服务器上的信息和 数据库名称,连接字符串等传递连接字符串
我如何通过不同的配置配置信息到DAL对象?
很明显,我可以通过配置串到DAL对象 我每次实例化一个时间,但似乎混乱和重复作为DAL每类都需要属性的配置字符串..
谁能告诉我有没有更好的办法?
我想知道是否有一种方法让实例化的DAL对象从调用对象读取一些属性,而无需我明确地传递它们?
如何让所有DAL类从包含连接字符串属性的基类派生?
在这种情况下,您可以在子构造函数调用上调用基的构造函数,然后该基构造函数将成为加载连接字符串的单个位置。
如果您在两个Exe的例如:“DBConnectionString”中使用相同的ConfigKey - 那么构造器将只从配置文件“DBConnection”条目加载值 - 无论哪个exe调用dal和正确的连接值字符串将传递给它
执行将在下面的行... 对不起,使用类似C#的语法。我很多年前使用过VB。
class BaseDAL
{
protected String _connectionString;
BaseDAL()
{
_connectionString = ConfigurationManager.AppSettings("DBConnectionString")
}
....
}
class ChildDAL : BaseDal
{
ChildDAL():base()
{
....
}
}
也许我错过了一些东西,但你可以把连接字符串放到App.config或Web.config中。
<appSettings>
<!-- This sets the server, the username, and the password to connect to the database -->
<add key="SqlConnectionString"
value="Data Source=servername;Database=dbname;User ID=username;Password=password;Charset=utf8;"
/>
</appSettings>
然后,在你的代码只需在阅读:
Shared connectionString As String = ConfigurationManager.AppSettings("SqlConnectionString")
你只需要每EXE我想一个App.config中。
如果你真的有一个不同的连接字符串的EXE运行的每个实例可以将它存储在缓存中,但我不认为这是你在做什么。
编辑:我在我的例子中使用的连接字符串将连接到MySQL。显然,连接字符串本身会因数据库而异。
谢谢,但存储和检索配置字符串不是问题。 我想我想让instanciated DAL对象能够读取配置字符串,而不必将每个对象明确地作为属性传递给它们。 – zebidy 2010-09-02 05:09:01
好吧我明白从基类继承将删除我需要在DAL类中的连接字符串属性,这是很好的。 但我不知道你说什么关于传递连接字符串从exe到DAL类,因为他们instanciated。 您是否建议将它传递给每个DAL对象,因为它是在构造函数中创建的? – zebidy 2010-09-02 05:05:57
@zebidy - 只编辑了代码 - 请参阅BaseDAL的构造函数。它是具有查找连接字符串逻辑的单个位置。 DAL - 在实例化时 - 将能够以这种方式获取连接字符串。不需要传递任何东西。 – InSane 2010-09-02 05:19:37
这是非常棒的,非常感谢我正在寻找的指导。 – zebidy 2010-09-02 06:19:17