繁体   English   中英

反射和强命名程序集

[英]Reflection and strong named assemblies

  1. 我创建了一个测试项目,其输出将为强命名程序集。 我在“项目->属性->签名”部分中指定了SNK文件名,以便程序集具有强名称。 我添加了未签名或强命名的程序集的引用。 我期望我的项目完全不会生成,因为它引用的是未签名的程序集。 但是,它已经建成,我也可以在GAC中安装该组件! 为什么会这样呢? (我使用的是.NEt 4.0,它是gacutil.exe)注意:我确保所引用的程序集不是强命名的。

  2. 我可以在我的程序中以编程方式加载“ unsigned”(即非强命名)程序集,其输出将成为强命名程序集吗? 如果是,为什么允许这样做,而.NET不允许添加对未签名程序集的引用?

  3. 如果我在GAC中具有同一程序集的多个版本。 在我的配置文件中,如果仅指定程序集的名称,将从GAC加载哪个版本? 每次都会是最新版本吗? 哪个API有用? 我在Assembly类中发现了许多标记为“不赞成使用”的方法。

您可以从已签名的程序集中引用VS.Net中的未签名的程序集。 但是,如果您调用从有符号到无符号的任何内容,构建都将失败。

  1. 签名的程序集引用未签名的程序集没有问题。 可以完成,可以对GACed签名程序集。

  2. 是的,您可以加载。

  3. 如何仅通过名称指定装配? 只有一个API LoadWithPartialName,并且由于许多原因而已弃用。 您需要版本,区域性和公共密钥令牌来唯一标识程序集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM