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

蒂莫西·波克拉(Timothy Pokorra)

对于Fedora,我们要为Mono 4构建Newtonsoft.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#L56 https://github.com/JamesNK/Newtonsoft .Json / blob / master / Src / Newtonsoft.Json / Utilities / StringReference.cs#L30

StringReference定义为internal struct

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

那么,这将如何工作?我想念什么?这在MS.NET上有效,但在Mono上无效吗?

谢尔盖·朱可夫(Sergey Zhukov)

内部结构不仅对定义它们的程序集可见,而且对友好的程序集也可见。关于您可以在MSDN中阅读的友好程序集

在源代码中,它们在此处此处定义

可能您尝试使用NewtonSoft.Json.dll的签名版本运行测试,并且该公钥与源代码中定义的公钥不同(因为您使用自己的* .snk文件对程序集进行了签名),因此这是Tests程序集无法看到的原因主机的内部零件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c# 无法使用 newtonsoft 正确构建 json 层次结构

由于“内部”保护级别为swift 4,因此无法访问扩展初始化程序

构建Json Newtonsoft Jarray

如何在MS构建任务中使用NewtonSoft.json?

json 无法访问 Newtonsoft.Json.Linq.JValue 上的子值

动态 Json - 无法访问 Newtonsoft.Json.Linq.JValue 上的子值

Espresso Tests无法访问课程文件

无法访问Newtonsoft.Json.Linq.JProperty上的子值-使用LinQ检查JObject时发生错误

我无法访问json响应Swift 4中的值

System.InvalidOperationException:无法访问Newtonsoft.Json.Linq.JValue上的子值

由于“包装器”而无法访问JSON对象

无法使用 NewtonSoft JSONConvert 解析 JSON

Alamofire 4,Swift 3和构建json主体

访问JToken的值时获取异常-无法访问Newtonsoft.Json.Linq.JValue上的子值

Newtonsoft JSON - 不同的 JSON 结构,对象与数组

检查属性是否存在以停止错误;无法访问 Newtonsoft.Json.Linq.JProperty 上的子值

无法访问视图-JSON

无法访问嵌套的JSON

无法访问 JSON 项目

无法访问 JSON 数据

使用Newtonsoft Json获得json属性类型

使用Newtonsoft.Json生成JSON问题

使用 NewtonSoft JSON 解析 JSON 数组

使用 Newtonsoft Linq 访问嵌套的 JSON 数据

由于标志字节串-lt-0_10_4,因此无法使用Stack构建Hello World程序

使用ReactJS和fetch-api无法访问和显示JSON

Newtonsoft.Json 无法从 JSON 转换为 ICollection<Object>

使用Newtonsoft.JSON读取多个JSON对象(串联的JSON)

Newtonsoft.JSON无法使用TypeConverter属性转换模型