是否存在限制解决方案的访问修饰符?

2024-04-18

在我的 .NET 解决方案中,我有两个项目:一个主项目和一个用于针对主项目运行测试的项目。在我的项目中,我有几种想要保持“私有”的方法,但也想对其运行测试。是否有一种访问方法可以将这些功能限制在我的解决方案内部?


您正在寻找内部可见 https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(v=vs.110).aspx属性。

此属性允许您指定应有权访问程序集内部的类型和方法的其他程序集。因此,在主项目 AssemblyInfo.cs 文件(或任何其他源文件)中,您可以指定测试项目是“友元程序集”,并且应该有权访问主项目的内部结构:

[assembly:InternalsVisibleTo("MainProject.Tests")]

顺便说一句,正如 Alexei 所指出的,如果您的 MainProject 使用强名称密钥进行签名,则任何“朋友”程序集也必须进行签名。这是解释的here https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute(v=vs.110).aspx

虽然,正如另一条评论中提到的。最佳实践是使用其公共 API 来测试您的程序集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否存在限制解决方案的访问修饰符? 的相关文章

随机推荐