C Shap 如何唯一确定一个类,当多个程序集具有相同的全名类时,避免冲突或意外的替换。

1.首先 c shap CLR 运行时如何确定一个类 ? c shap 源码中调用一个类,在编译成IL时,IL 并不仅仅记录类全名,而是记录 程序集名+类全名,这样就能唯一确定一个程序集中的类,从而避免冲突和替换。

如上图中反编译出的IL代码中,所有涉及到对类的调用都时采用程序集名加类全名的方式。

2.外部别名,外部别名只是作为源码层面的语法使用,当采用外部别名访问某个类的操作被编译为IL时,将自动转换成 别名表示的程序集,并以程序集名+类全名的方式来记录对类的调用(注意:当前程序集和引用的程序集默认属于Galobl 别名)。

如上图采用外部别名的方式调用了一个类。项目工程文件中会记录下这个类的别名,

实际编译时不是使用的别名,而是使用别名对应 的程序集名+类全名的方式记录

猜你喜欢

转载自blog.csdn.net/u012149999/article/details/104818269