为什么NetFx助手是内部的?

时间:2011-08-06 06:48:37

标签: .net nuget

NetFx是NuGet提供的一组很棒的助手。但我没有得到一件事:为什么所有助手类都是内部的?如果我需要几个项目的帮助,我应该如何对待它呢?

更新。我目前所做的是将NetFx类放在一个项目中,公开我需要的那些类,并从我的其他项目中引用这个程序集。但是这种方法使得更新NetFx变得很困难:我将不得不一次又一次地公开课程。

1 个答案:

答案 0 :(得分:1)

简短的回答:因为它们是明确的designed to be that way。即帮助程序应该是需要它们的那些部分的内部,而不是转储到“Common.dll或Helpers.dll”中。关于这个决定的更多背景的长篇答案只能由(原创)作者提供。

关于你原来的问题:你可能会在几个项目中包括那个帮助者。

如果您真的希望它们存在于单独的程序集中而不想更改代码(将内部更改为公共代码),则可以使用该程序集上的InternalsVisibleTo属性,列出所有其他项目/需要使用它们的程序集。并不是说这是一个很好的解决方案 - 它明确地反对NetFx的初始设计 - 但至少在更新时它将使您免于手工劳动。

总而言之,我不会为任何一个(“常见”DLL或严格的本地函数)做出绿色字段决定。两者都有明显的利弊。但是你没有询问故事的那一部分,即你似乎已经做出了决定; - )