Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Allow JsonSerializerOptions without TypeInfoResolver

Offen
#1,150 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

Dieses Issue hat noch niemand übernommen.

  • #1203 von @GeorgiPopovIT — ohne Merge geschlossen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
csharp
Bereich
api

Rechercherichtung

Beginne bei der in der Issue erwähnten WithTools-Implementierung und verfolge, wie die übergebenen JsonSerializerOptions schreibgeschützt gemacht werden. Reproduziere das Verhalten mit einer neuen System.Text.Json.JsonSerializerOptions, die nur Konverter und eine Benennungskonvention hinzufügt; abgeschlossen ist es, wenn die Übergabe an WithTools keine Ausnahme auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement needs confirmation P3

I have JsonSerializerOptions which only adds some converters and set the naming policy. I don't have a source generated JsonSerializerContext and therefore no TypeInfoResolver.

When passing these options to a WithTools function, I get the exception:

JsonSerializerOptions instance must specify a TypeInfoResolver setting before being marked as read-only.

I understand that making these options read only is a good thing, but I don't understand enough about the difference to the overload of MakeReadOnly(populateMissingResolver) on the options.

I can set TypeInfoResolver = new DefaultJsonTypeInfoResolver() on my options, but that seems a bit weird.

To Reproduce
Steps to reproduce the behavior:

  1. Pass a new System.Text.Json.JsonSerializerOptions() object to one of the WithTools functions.

Expected behavior
No exception should be thrown.

Vorherrschende Sprache
C#
Sterne
4.6k
Forks
821
Ø Merge
9 T. 3 Std.
Gemergte PRs (30 T.)
3

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus modelcontextprotocol/csharp-sdk

Alle Issues in modelcontextprotocol/csharp-sdk

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.