gpt4 book ai didi

.net - 为什么可以使用反射从签名程序集中加载未签名程序集中的类型?

转载 作者:行者123 更新时间:2023-12-04 14:35:05 27 4
gpt4 key购买 nike

我有两个程序集 A 和 B。A 是强命名的,而 B 不是。

根据 MSDN我不能从 A 引用 B,因为强命名程序集只能引用另一个强命名程序集。

但是为什么可以加载程序集 B、实例化它的类并使用反射从程序集 A 调用它们的方法呢?

// Inside assembly A
Assembly b = Assembly.LoadFrom("B");
obj myObj = b.CreateInstance("MyClass");

这是否违背了不允许在签名的程序集中引用未签名的程序集的真正目的?

最佳答案

好吧,您必须了解强命名程序集旨在规避“DLL hell ”并允许“并行版本控制”。 AFAIK 它不是为安全而设计的。

因此,您可以在强命名程序集中使用反射来调用方法并实例化未签名程序集中的类。该框架假设您知道自己在做什么,因为您正在显式加载文件——因此您应该知道您真正想要哪个文件。换句话说,您是在告诉框架:“对于这个程序集,我想管理我自己的版本控制。”

关于.net - 为什么可以使用反射从签名程序集中加载未签名程序集中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4335265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com