AppDomain动态加载程序集
最近项目中需要用到AppDomain动态加载程序集。
中间碰到了不少的问题,多亏朋友们的帮助才解决。
现在写一下部分心得(当然,不是说我的心得就是对的,至少是个敲门砖吧)
AppDomain加载程序集的方式:
最用的有CreateInstance() CreateInstanceFromAndUnwrap().
乍一天,两者长得还挺像。但是:它们之间有什么区别呢?
首先 CreateInstance()返回的是一个ObjectHandler对象,如果要将它转换成具体的类型或Object类型,需要使用到ObjectHandler的Unwrap()方法.
而CreateInstanceFromAndUnwrap().返回的就是一个Object对象。
它们之间有一种很重要的区别,其中从名字也可以看到,CreateInstanceFromAndUnwrap()需要从一个指定的文件路径中加载程序集。
而CreateInstance()会从GAC中加载程序集。
我想AppDomain加载程序集的顺序应该是:
1、当前应用程序目录
2、GAC
当然,对于AppDomain加载程序集,我也就只了解这么多了。
大家可以给小弟更多的指引,拜谢先。
中间碰到了不少的问题,多亏朋友们的帮助才解决。
现在写一下部分心得(当然,不是说我的心得就是对的,至少是个敲门砖吧)
AppDomain加载程序集的方式:
最用的有CreateInstance() CreateInstanceFromAndUnwrap().
乍一天,两者长得还挺像。但是:它们之间有什么区别呢?
首先 CreateInstance()返回的是一个ObjectHandler对象,如果要将它转换成具体的类型或Object类型,需要使用到ObjectHandler的Unwrap()方法.
而CreateInstanceFromAndUnwrap().返回的就是一个Object对象。
它们之间有一种很重要的区别,其中从名字也可以看到,CreateInstanceFromAndUnwrap()需要从一个指定的文件路径中加载程序集。
而CreateInstance()会从GAC中加载程序集。
我想AppDomain加载程序集的顺序应该是:
1、当前应用程序目录
2、GAC
当然,对于AppDomain加载程序集,我也就只了解这么多了。
大家可以给小弟更多的指引,拜谢先。
<h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>