我在C#中定义了一个抽象类,并从该抽象类中派生出来了一个类,具体代码如下namespace DllTest
{
    abstract class Base
    {
        public abstract void Run();
    }
    class PBase : Base
    {
        public override void Run()
        {
            MessageBox.Show("Overrided Run!");
        }
    }
}然后我将这个类的定义放在一个C#的类文件中,并编译成了一个DLL的文件。然后我通过类反射中的Activator.CreateInstance(type)来创建PBase类对象的实例,然后再强制转换成Base类,来调用抽象类中的Run方法,但是怎么强制转换都会报错,具体代码贴出来:public Form1()
{
            InitializeComponent();
            AssemblyNameProxy ap = new AssemblyNameProxy();
            AssemblyName myAssemblyName = ap.GetAssemblyName("DLLTest.dll");//获取程序名
            Assembly assembly = Assembly.Load(myAssemblyName); //手动加载程序集   
            Type type = assembly.GetType("DllTest.PBase"); //获取程序集中的类型
            object obj = Activator.CreateInstance(type);//创建对象实例
            (obj as DllTest.PBase).Run();
 }不论我用的是(obj as DllTest.PBase).Run()或者新建一个
Base Ba = (Base)obj;来强制类型转换都要报错。。求各位大哥指点迷津,我实在不知道错在哪里了~先谢谢大家了!