如何利用反射得到的对象 调用基类的方法

比如
abstract class b{
protected abstract void m();
protected void s();

}
class c : b
{
public override void m(){}

}

使用方法
Assembly assembly = Assembly.LoadFrom(assemblyName);
Type type = assembly.GetType(className);
object instance = Activator.CreateInstance(type,parameters,null);

在vs里面监视 发现 instance里面看不到 m 和 s
所以 在调用的时候
type.InvokeMember(methodName, BindingFlags.Instance ,null ,instance ,null)
抛异常了

请大虾指教!

[545 byte] By [qizi82] at [2008-1-9]
# 1
你反射出来的对象是父类对象吧??
Jialang-疯狂键盘 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 2
没有 那个 classname = "namespace.c"
qizi82 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 3
别用activator,用你上边的那个Assembly的实例
# 4
没看见具体代码,帮你顶了.
Jialang-疯狂键盘 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 5
honkerhero(孤独的流浪)
貌似不行喔,麻烦给个全解
qizi82 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 6
abstract class b
{
protected abstract void m();
protected void s(){ Console.WriteLine("s..."); }

}

class c : b
{
protected override void m() { Console.WriteLine("m..."); }

}

public class Program
{
[STAThread]
static void Main(string[] args)
{
Type type = typeof(c);
object o = Activator.CreateInstance(type);

type.InvokeMember("m", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, o, null);
type.InvokeMember("s", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, o, null);
}
}

public override void m(){} // <--- 这行有错误,你不能提升访问权限。
qyuhen-秋雨痕 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 7
qyuhen(秋雨痕) ( )
不好意思 笔误笔误 呵呵 c 里面也是protected的 不然编译不过去的
我试了你的方法 可以喔 多谢多谢
但是我用别人给我的一个dll 就不行 我再研究研究哈
qizi82 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...
# 8
方法里面抛的异常。。。无语 结贴
qizi82 at 2007-10-19 > top of Msdn China Tech,.NET技术,C#...