猿问

动态加载程序集问题

<P>平常我们要实例化一个类只要,ClassA a=new ClassA()就可以,<BR>而使用动态加载程序集里的方法就必须通过如下的方式:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P> <P>var ass = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "OICF.CustomImplement.dll"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var type = ass.GetType("OICF.CustomImplement.HTMLHelper");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var method = type.GetMethod("GetSourced");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object o = Activator.CreateInstance("OICF.CustomImplement", "OICF.CustomImplement.HTMLHelper").Unwrap();<BR>我的问题是,有没有方法当我动态加载了Assembly后,就可以以前一样,ClassA a=new ClassA()这样的形式来实例化对象,并调用方法</P>

慕婉清6462132
浏览 507回答 2
2回答

梦里花落0921

Class A 这种写法是编译时就已经确定的类型,既然你的程序庥还没有加载怎么编得过去呢~~~ 最多只能InterfaceA a = .... 用运行时多态.

千万里不及你

Of course no way, at least not in C# 3.0 or earlier version.
随时随地看视频慕课网APP
我要回答