.net framework Reference Assemblies Facades 文件夹是做啥用的?

Posted

技术标签:

【中文标题】.net framework Reference Assemblies Facades 文件夹是做啥用的?【英文标题】:What is the .net framework Reference Assemblies Facades folder used for?.net framework Reference Assemblies Facades 文件夹是做什么用的? 【发布时间】:2018-07-02 12:16:44 【问题描述】:

我注意到每个 .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

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

【问题讨论】:

github.com/dotnet/standard/blob/master/docs/history/… @HansPassant 这是我读过的关于 dot Net 程序集的最佳文章!非常感谢! 【参考方案1】:

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

Facade Assemblies 仅包含 Type Forwards

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

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

由于 Facade Assemblies 仅包含类型 forwards,因此它们的尺寸非常小。

【讨论】:

以上是关于.net framework Reference Assemblies Facades 文件夹是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

Spring资源

websocket

spring 学习资料

spring开发包内容

.net5.0如何切换成4.0 framework

.NET和.NET Framework的关系