C#反射二(Assembly.LoadFrom和Assembly.LoadWithPartialName方法

本文介绍了C#中Assembly.LoadFrom和LoadWithPartialName两种加载程序集的方法。LoadFrom方法根据指定的完整路径加载程序集,而LoadWithPartialName可能会导致版本不确定性,不建议使用。文中强调了程序集在.NET框架中的重要性,并推荐了《.NET框架程序设计(修订版)》作为学习资源。下篇将探讨反射的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
上次讲解了Assembly.Load方法加载程序集的一些步骤和知识点,今天我你们一起来看看另外两个方法,LoadFrom和LoadWithPartialName.它们和Load的区别又在哪里呢?
       首先我们还是来看看LoadFrom方法,这个方法的原理是这样的:我们如果要使用它来动态加载程序集,必须告诉它程序集的路径,也即在哪个目录下面,CLR会去加载与你指定的路径完全匹配的程序集。记住,当我们指定程序集路径时,不能包括任何关于程序集强命名的信息,所以,CLR不会在我们指定的程序集文件上应用任何策略,而且也不会去任何其他的地方搜索程序集,简言之,它就是指哪打哪,呵呵。
       例如:你有个程序集在D:/Test/MyAssembly.dll,你要用Assembly.LoadFrom加载该程序集,代码就如下:
       Assembly assembly = Assembly.LoadFrom(@”D:/Test/MyAssembly.dll”);
       对于,LoadWithParitalName方法,推荐大家最好不要使用它,因为程序无法确定最终要去加载哪个程序集的版本,所以我们这里只是简单的介绍一下它的工作原理:你可以传递一个程序集标识给它,包括程序集名称,至于其他信息是可选的(区域信息,公有密钥等),该方法执行时,会首先检查应用程序中配置文件的qualifyAssembly节点,如果存在,则把该部分名称的程序集替换成完全的程序集标识,如果不存在,则使用程序集名称先到应用程序根目录下查找,然后是私有目录,没有找到的话,就到程序集全局缓存中查找。简单过程如下:
       应用程序根目录 -> 应用程序私有目录 -> 程序集全局缓存.
       说完这三个方法,关于程序集的知识就告一段落了。对于初学.NET的朋友来说,可能其中很多概念不清楚,但是,请记住一句话,程序集是.NET中最重要的概念,一定要弄清楚,现在网上有很多关于程序集的介绍,如果要我推荐的话,我将推荐《.NET框架程序设计(修订版)》这本书给大家。也许不太适合初学者,但是本书值得一看再看。
       下篇文章开始,我们就进入反射的世界,看看怎样把类的信息反射出来。到时再见
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值