Unm*_*kar 6 .net reflection strongname assemblies
我有两个组件A和B. A是强名称而B不是.
根据MSDN,我不能从A引用B,因为强名称程序集只能引用另一个强名称程序集.
但是为什么可以加载程序集B,实例化它的类并使用反射从程序集A调用它们的方法?
// Inside assembly A
Assembly b = Assembly.LoadFrom("B");
obj myObj = b.CreateInstance("MyClass");
Run Code Online (Sandbox Code Playgroud)
这是否会破坏不允许在签名组中引用未签名组件的目的?
好吧,你必须明白,强名命的程序集旨在规避"DLL Hell"并允许"并行版本控制".AFAIK它不是为安全而设计的.
因此,您可以在强名称程序集中使用反射来调用方法并在无符号程序集中实例化类.该框架假设您知道您正在做什么,因为您明确加载了一个文件 - 因此您应该知道您真正想要的文件.换句话说,你告诉框架:"对于这个程序集,我想管理我自己的版本."
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |