---------web.config----------
<appsetting>
<add key=“DbType“ value=“Oracle“>
</appsetting>
---------a.cs---------
#if Ora
    using My.DAO.Oracle;
#elif Sql
    using My.DAO.Sql;
#else
    using My.DAO.OleDb;
#endif
class Test
{
private CommonDB _conn;//CommonDB is defined in My.DAO.Oracle \ My.DAO.Sql \My.DAO.OleDb
....
}
1.
目前我不会根据预处理来自动选所需要的名字空间,因此我每次都要手动改变名字空间,重新编译,很麻烦.
我觉得上面的做法好一些,只需要改动配置文件而不需编译。
现在按照上面的代码,我怎么样才能把web.config中的DbType键和a.cs中的预处理联系起来呢?
谢谢.
2.或者不用预处理,通过什么手段能够不用每次修改头文件和程序呢?

解决方案 »

  1.   

    1——
    这是不可能实现的。预编译处理是在编译阶段,CONFIG内容是在运行阶段。因此,你不可能这样实现。如果你想实现编译后使用指定的数据库,而不是在运行时动态指定,可以对工程进行属性设置:在属性的配置属性、生成中,有个条件编译常数,你只要在这里增加你需要的ORA或Sql就可以了,以分号间隔。