首页 新闻 会员 周边

项目之间引用、反射查找aspx的一个问题,求助。

0
悬赏园豆:100 [已解决问题] 解决于 2010-08-19 10:34

有一个WEB基础项目,包括用户管理,权限管理等。

再添加一个应用模块(如学生管理),这个模块采用独立的项目(类库或应用程序)开发。如下

  • 基础Application(启动项目)
  • 学生管理

目的:为了让部署的时候,只需更新该学生管理模块的相关内容或DLL,不影响基础的项目模块。所以基础项目不添加学生管理项目的引用。学生管理会引用基础项目的部分公用代码。

问题:如何在基础项目里面动态找到学生管理模块的aspx页面,并在基础项目中显示出来?

如果用反射的话,能提供具体解决方案吗?多谢

老解的主页 老解 | 初学一级 | 园豆:0
提问于:2010-08-16 15:22
< >
分享
最佳答案
0

基础项目 学生管理模块

请问 A.aspx A.aspx.cs 这两个文件各自在上两个 dll 的哪个里面?

收获园豆:50
Launcher | 高人七级 |园豆:45045 | 2010-08-16 15:27
把学生管理模块整个项目编译成DLL,放进基础项目里面。
老解 | 园豆:0 (初学一级) | 2010-08-16 15:31
@Jaylin:你的意思是把 a.aspx 这种页面文件也嵌入 dll 中吗? 如果是这样的话,a.aspx就存在于 dll 的 resources 中.读取倒是很容易,但是难就难在你如何渲染页面. isapi 通过 a.aspx文件和对应的 a.aspx.cs 代码来为输出渲染页面,回头我的看下这个过程怎么实现的.
Launcher | 园豆:45045 (高人七级) | 2010-08-16 15:51
我稍微看了下isapi处理.aspx的流程,首先就是通过虚拟路径判断物理文件是否存在,完了后,才是build,render.都比较复杂.我在想好像不可能改变这个流程.即使我们添加自己的文件处理handler,aspnet_iisapi中的某些方法也会去检测我们注册的后缀名的文件是否存在.所以,我想楼主能不能换个思路,UI还是UI,把业务逻辑放到单独的项目中去. 当然,还有个更暴力的方式,就是通过注册自己的IHttpModule,在有请求的时候把学生管理模块中的页面读取出来写入磁盘,这样后续请求也能找到.
Launcher | 园豆:45045 (高人七级) | 2010-08-16 17:38
其他回答(2)
0

看着不太理解,你把所有权限和所要控制的功能模块以组的形式,把页面存入数据库中,来控制是否有操作权限。

为什么要用上面的方式。

收获园豆:40
Astar | 园豆:40805 (高人七级) | 2010-08-16 15:32
为了可以独立部署模块。这也只是个设想,想研究下解决方案。
支持(0) 反对(0) 老解 | 园豆:0 (初学一级) | 2010-08-16 15:38
@Jaylin:独立部署倒是可以,还是建议把操作权限放入数据库表,基础模块从数据库中获取是否有操作的权限。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-16 15:41
我现在的思路是把学生管理模块整个项目编译成DLL,放进基础项目里面。 基础模块怎么获取到学生管理中aspx?
支持(0) 反对(0) 老解 | 园豆:0 (初学一级) | 2010-08-16 15:48
@Jaylin:URL获取aspx还是得有路径和真实的文件,aspx文件必须得存在,但是代码可以编译到dll里,没有了aspx怎么调用。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-16 15:52
0

画一个项目的结构图,理一下项目的层次。反射感觉把问题搞复杂了。

应该有一个权限配置对应表,对应每个模块中每个页面的访问。

收获园豆:10
邀月 | 园豆:25475 (高人七级) | 2010-08-16 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册