我有一个 Common DLL,它有一些内部使用的内部方法。除了我还有 3 个其他项目 WebServices、UnitTests 和 PATs
在 Common 项目的 AssemblyInfo.cs 中,我添加了以下几行:
[assembly: InternalsVisibleTo("WebServices, PublicKey=00240...b59a0")]
[assembly: InternalsVisibleTo("UnitTests, PublicKey=00240...dcf98")]
[assembly: InternalsVisibleTo("PATs, PublicKey=00240...e65cf")]
这些内部方法与 UnitTests 和 PATs 但 WebService 完美配合。当我在 WebService 项目中编写代码时,我可以在 IntelliSense 框中看到这些内部方法,这很奇怪。编写代码时没有错误警报,但是在构建项目时,我收到了此错误消息
“Common”不包含“内部方法名称”的定义
当时,我认为程序集名称在某种程度上是错误的。我试图确定它确实是错误的:
[assembly: InternalsVisibleTo("WebSer, PublicKey=00240...b59a0")]
然后在 WebService 项目中,在 I use Common internal methods without compile with this message 的那一行立即变为红色:
无法在此处访问内部方法“内部方法名称”
所以我认为我的程序集名称是正确的,但我仍然不知道为什么我不能在我的 WebServices 项目中使用内部方法。