2

在部署我的项目之前,我想将所有public方法设置为internal方法。有人知道 Visual Studio 中的内置函数或执行此类任务的外部工具吗?

4

3 回答 3

2

通过一些简单的重构,ILMerge可以在这里工作。ILMerge 可以将多个程序集合并为一个,并将不属于主程序集的所有内容的可访问性更改为internal. 通过将您当前的项目分成两个项目(一个包含所有代码的库,以及一个只转发库中的真实代码的辅助可执行文件),您可以在构建之后将它们合并回一个文件,在所有库位不再公开。

于 2013-09-12T14:38:55.833 回答
1

如果您出于测试原因公开了属性/方法,您应该查看 Brad Wilsons 博客:可测试对象模式

这样您就不必切换,一切都保持在内部开发中。

或者看看 Jon Skeets 关于InternalsVisibleTo的建议

于 2013-09-12T15:57:59.870 回答
0

我只能想到您想要这样做的两个原因:

  • 安全。在这种情况下,您有错误的想法:访问修饰符不是安全机制。它们是一个设计问题,描述了 API 如何呈现自己。任何调试器仍然可以访问您的所有方法,无论它们的访问修饰符如何。

  • 您有另一个在开发过程中使用的程序集应该具有完全访问权限。在这种情况下,您可以保留所有内容internal并使其成为朋友程序集

于 2013-09-12T16:12:41.793 回答