由于无法访问内部结构和类,无法使用Mono 4构建Newtonsoft.Json.Tests



对于Fedora,我们想要构建Newtonsoft。Mono 4的Json。最好也运行一下测试。但是当构建Newtonsoft.Json.Tests.Net40。Csproj,我们得到这样的错误:

Utilities/DateTimeUtilsTests.cs(56,24): error CS0122: `Newtonsoft.Json.Utilities.StringReference' is inaccessible due to its protection level

所以检查源代码:https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json.Tests/Utilities/DateTimeUtilsTests.cs#L56https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Utilities/StringReference.cs翻译

StringReference定义为internal struct

根据https://msdn.microsoft.com/library/7c5ka91b.aspx, "内部类型或成员只能在同一程序集中的文件中访问"

那这怎么可能呢?我错过了什么?这是否适用于MS.NET,而不适用于Mono?

internal不仅对定义它们的程序集可见,而且对友好程序集可见。关于友好程序集,您可以在MSDN

中阅读。

在源代码中,它们在这里和这里定义

可能您尝试使用签名版本的NewtonSoft.Json.dll运行测试,并且它具有与源中定义的不同的公钥(因为您使用自己的*. dll签名程序集)。

相关内容

  • 没有找到相关文章

最新更新