我正在将 .NET Framework 4.5 项目转换为 .NET Core 3.1。我的测试过去使用 Newtonsoft.Json 来检查 json 是否有效,现在我想使用内置的 System.Text.Json 来实现相同的功能。看起来
JsonElement values = JsonDocument.Parse(json).RootElement;
Run Code Online (Sandbox Code Playgroud)
throws System.Text.Json.JsonReaderException,但我无法捕获它,因为指向此异常会导致错误
命名空间“System.Text.Json”中不存在类型或命名空间名称“JsonReaderException”(您是否缺少程序集引用?)
我只是想了解如何可能抛出实际上似乎不存在的东西。
更新#1:堆栈跟踪:
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
at System.Text.Json.Utf8JsonReader.ReadSingleSegment()
at System.Text.Json.Utf8JsonReader.Read()
at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, Utf8JsonReader reader, MetadataDb& database, StackRowStack& stack)
at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedBytes)
at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 json, JsonDocumentOptions options)
at System.Text.Json.JsonDocument.Parse(String json, JsonDocumentOptions options)
at Anonymized..ctor(String json) in Anonymized.cs:line 182
at Anonymized.<>c__DisplayClass12_0.<TestCreateLogEntryFromJson_IllegalValues>b__0() in Anonymized.cs:line 206
at NUnit.Framework.Assert.Throws(IResolveConstraint expression, TestDelegate code, String …Run Code Online (Sandbox Code Playgroud)