什么是.net框架参考装配体Facades文件夹用于?

Stu*_*222 7 .net c# vb.net mono .net-framework-version

我注意到每个.NETFramework Reference Assemblies文件夹中都有一个Facades文件夹.从v4.5开始.这些文件夹中的所有程序集都非常小,只包含元数据.例子:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7\Facades
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\Facades
Run Code Online (Sandbox Code Playgroud)

我很好奇,想知道这些用途是什么?谢谢!

小智 1

类型转发是一个概念,您可以将类型声明从一个程序集(例如 A)移动到另一个程序集(例如 B),而无需重新编译使用第一个程序集 (A) 的应用程序。

外观组件仅包含类型转发

外观程序集与契约程序集的标识相匹配(这些类似于引用程序集),并且类型将所有类型(在契约程序集中声明)转发到其各自的实现程序集。

因此,在设计时,您可以针对一组合约程序集编译应用程序,另一方面,在运行时,应用程序会在 Facade 程序集中查找类型(因为它们与合约程序集的标识相匹配)并在程序集中进行类型转发,类型声明是从实现程序集中获取的。

由于外观组件仅包含类型转发,因此它们的大小非常小。