aspx不使用代码隐藏使用公用代码解决办法

  最近弄了brinkster的空间 发现上传了编译好的网站之后说找不到程集 提示为"xxx.dll"未编译 弄了N久还是没找到原因..后来在本机上测试 我将一个网站放到wwwroot下 未给它建立虚拟目录 直接在IIS中浏览 发现和空间上的错误一模一样..才知道上传上的网站没建立虚拟目录 但网站又不允许我建立虚拟目录..一时之间没辙了 想了老半天 发现这个空间不支持代码隐藏 只有使用单页面的aspx了 怎么办 我的很多代码都封装成了类放在app_code文件夹中 在单页面的aspx中根本无法访问..急了 一个网站 要我重新再做一份但页面的..我晕...想来想去也没别的办法...就慢慢的开始做单页面的 还好 前天代码都一样 只要copy就行了 可后台cs中的怎么办 我又不能使一些公共的方法在每个页面中都可以调用 在这个页面中写了 在另一个页面中照样要写...这么大的工作量 而且我的数据库操作都写在了类里面了..无语了..沉默了...哎 程序员就是命苦啊..敲过了的代码还要敲 而且将类中的方法都放到aspx里面 aspx显得混乱 而且文件很大...左思右想 还是没结果..有人说去继承System.Web.UI.Page类 可aspx单页面怎么继承啊..于是我继续想啊想的..看到页面中的Import这个处理指令 于是我就开始将类封装成dll了..到页面中去引用dll 可私有的dll没有bin目录 在aspx中始终引用不到.突然 我想到了以前看过的反射..对 用反射 就它了 于是..我就找反射的资料..去动态调用dll中的方法..我将所有的数据库查询的方法都链到了dll中..再通过反射去调用其中的方法.哈哈 问题就这么解决了.. 在使用反射的过程中也遇到了些麻烦..但总的方向有了..也就一一解决了..

反射引用命名空间System.Reflection.............

Assembly assembly=Assembly.LoadFrom("xxx.dll");

Type[] tt=assembly.GetTypes();

foreach(Type t in tt)

{

        if(t.FullName=="DataBase.Connection")

     {

       object o=Activator.CreateInstance(t);

          MethodInfo m=t.GetMethod("MethodName");

        object[] parm=new object[]{};//参数

  object result=m.Invoke(o,parm);

       return result;//就实现了动态调用dll中的方法

    }

}

我把dll文件放在单独的一个文件夹中...这样减少了前台的代码 也可以实现公用 也在一定程度上防止了前台代码的逻辑混乱..

休息  休息....问题解决了 ..哈哈哈哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值