回 帖 发 新 帖 刷新版面

主题:请教在动态dll中基类的实现

/*问题在代码中,麻烦各位大侠指教,如果有说不清楚的地方,欢迎大家提出来
 
 * 
 */
using System;
using System.Collections.Generic;
using System.Text;

namespace temp
{
    /*Base类的定义我把它放在Base.dll中了,
    然后我想在此程序中动态加载Base.dll,然后,再从Base类继承,
     * 我这个想法能够实现吗?
     * 如果不能实现的话,那么在模块化程序设计时,是不是基类都不能分出来用dll
     * 实现呢?那这样的话,在划分模块时可就麻烦了
     */
    class Sub:Base
    {

    }
}

回复列表 (共4个回复)

沙发

dll采用前期绑定
工程引用中添加进来即可

动态的……得查查

板凳

由于继承属于编译实现,所以不能采用动态加载dll

动态加载dll可以“使用”(不是继承之类的)其中的类和方法
详情参见Assembly类

3 楼

谢谢各位的答复。我现在是在想用模块化的方法来改写我已经写好的一个面向对象的程序。
本来是想把基类抽取出来,用dll做为一个模块实现的,但,感觉这样一来,好像反而变得麻烦了。因为基本上其它的7,8个类都得继承它,然后每个都得静态copy一份dll。
我想把我的程序模块化,却发觉每一个类之间的联系都很紧密,如果要强拆开,模块之间的耦合度太高了。
而且,在设计类时,也有很多为难的地方。
大家有没有什么好的,关于模块以及面向对象的书介绍呢?

4 楼

反正处于一个工程内,所以最终只是一个dll而已
写程序的时候都引用同一处dll即可

设计阶段一定要分析好组件关系
建议将模块设计成倒三角形,从下往上依次增加对下层的依赖,而对同层之间依赖尽可能小

我来回复

您尚未登录,请登录后再回复。点此登录或注册