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

How do I export a C# function with a `JSValue` argument?

Offen
#414 1 Kommentar 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@jasongin arbeitet bereits daran.

Seit 10.1.2025.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

As per issue title, I'm trying to export a C# class method using TypeExporter.ExportType, but the method is not exported due to the following check, which explicitly disallows JSValue argument types and causes the method to be skipped:

https://github.com/microsoft/node-api-dotnet/blob/a150c53280dbbdebbc51cb84d7384fa3f9313e4b/src/NodeApi.DotNetHost/TypeExporter.cs#L1026-L1028

The method has the following signature:

public async Task<JSValue> sendMessage(JSValue parameters)

The purpose of the C# function is:

  • to call JSON.stringify
  • parse the result with System.Text.Json
  • execute some C# code,
  • serialize the result with System.Text.Json
  • call JSON.parse again to return the result to nodeJS.

(I know, the JSON round-trip could be removed in the future by creating a DTO type, but the JSON data currently has a dynamic structure and needs some work)

Changing the signature to a string and using JSON.stringify in NodeJs is a workaround to make the method appear, but I'd like to pass a JSON object directly.

Vorherrschende Sprache
C#
Sterne
785
Forks
80
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

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 microsoft/node-api-dotnet

Alle Issues in microsoft/node-api-dotnet

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

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