我是这样想的:
1.写一个类库,发布成DLL,供其他程序引用!
2.类库里有个操作是关于数据库操作的,要用到数据库的物理地址。
3.为了类库的通用性,数据库地址当然不能写死。于是我就新建了一个新的命名空间(比方说MyProject),里面新建一个类(MyPrjSetting),类有个属性(DBConnString),类库里要用到数据库地址的时候就调用 MyProject.MyPrjSetting.DBConnString 就可以了。
4.做其他程序的时候也同样写个MyProject的空间,内容也一样,这样的话,程序和类库要进行数据库操作时用到的数据库地址就一致了。我试着这样做,可能是对C#还不熟悉吧,一直没有办法达到上述功能...
是不是要把MyPrjSetting写成接口呢?因为对于类库来说,数据库的地址实际上是动态联编的。写了这么多,不知道各位看明白我的想法了没有,或者有更好的方法,还望赐教,小弟在此先谢过了!
1.写一个类库,发布成DLL,供其他程序引用!
2.类库里有个操作是关于数据库操作的,要用到数据库的物理地址。
3.为了类库的通用性,数据库地址当然不能写死。于是我就新建了一个新的命名空间(比方说MyProject),里面新建一个类(MyPrjSetting),类有个属性(DBConnString),类库里要用到数据库地址的时候就调用 MyProject.MyPrjSetting.DBConnString 就可以了。
4.做其他程序的时候也同样写个MyProject的空间,内容也一样,这样的话,程序和类库要进行数据库操作时用到的数据库地址就一致了。我试着这样做,可能是对C#还不熟悉吧,一直没有办法达到上述功能...
是不是要把MyPrjSetting写成接口呢?因为对于类库来说,数据库的地址实际上是动态联编的。写了这么多,不知道各位看明白我的想法了没有,或者有更好的方法,还望赐教,小弟在此先谢过了!
解决方案 »
- 请问wpf下如何使用GDI中的Graphics.drawCurve()方法
- 怎样判断imagelist中的图片和picturebox中的图片是不是同张
- C#中RDCL报表问题,在线等
- 已知属性名,如何赋值?
- 客户端向服务器发送命令,服务器发回数据,怎样才能让客户端收完数据后,继续执行程序
- C#不用for循环就不能实现大批量的插入access数据么?挑战高手
- 采用vc开发的dll文件如何处理?
- 关于远程上传下载的问题
- C#lable循环的问题 挺急得 都进来看看
- DataBinding时,怎样取得被绑定控件的值(在线等,thanks)
- 有人可以通俗地解释一下DataRowView的用途吗?
- 技巧性问题~~~
m_conOle = new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionStrings"]);然后在App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionStrings"
value="连接值" />
</appSettings>
</configuration>
--------------------------------
OK!!
运行时指定一下MyProject.MyPrjSetting.DBConnString不就得了吗???也许我还是没搞明白楼主的意思。
我再重新陈述下:1.类库在通过调用 MyProject.CMyPrjSetting.DBConnString ;来获取数据库连接字.不是通过Web.config获得.
2.类库发布成.DLL供其他程序调用!
3.新的程序通过调用类库里的方法来实现某些数据库的操作!
4.新的程序如果在类库里找不到合适的方法,就要再自己重新写,这个时候也通过通过调用MyProject.CMyPrjSetting.DBConnString ;来获取数据库连接字.不是通过Web.config获得.那么问题来了:
1.类库编译的时候,数据库的地址也被编译到.DLL中了,那么新的程序引用这个库中的方法时,就会提示数据库路径错误.(因为类库里的数据库路径是在编译时就确定了!)2.正因为有这个问题,我就想,假如把CMyPrjSetting这个类写成抽象类,在编译类库的时候,DBConnString 返回的只是一个数据类型,并没有实际的值,只有到新的工程引用这个类库的时候才会被赋值!这样的话,类库中的数据库地址就和新的工程中的数据库地址一致了!可能关键是CMyPrjSetting这个类怎么写...我是这样的:using System;
using System.Configuration;
namespace MyProject
{
public class CMyPrjSetting{
public CMyPrjSetting(){
}
/// <summary>
/// 连接数据库,关键就是这里了,return的东西要是虚的,到实际新的工程调用时才被赋值. /// </summary>
public static string DatabaseConnectionString{
get{return ""}
}
}
}
get{return DatabaseConnectionString;}return 自己就是“虚”的了,呵呵!终于研究出来了,但是又有新问题!当类库编译后,我在新工程里的确可以引用,并且数据库路径也达到了动态获取的效果,但是有个警告,意思就是说重复定义了CMyPrjSetting 这个类,因为我在新工程里把这个类重写了!那么怎么定义这个类才能消除这个警告呢?