JSValue returned by Import() don't survive dependency injection
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- csharp, javascript, node.js
Línea de trabajo
Comience en src/NodeApi/JSValue.cs:666 y reproduzca el fallo utilizando el flujo de ImportAsync, RegisterInstance e inyección mediante constructor mostrado en el issue. Compárelo con el módulo cargado localmente que funciona, centrándose en cómo sobrevive la JSReference entre llamadas al contexto de sincronización. Se considera terminado cuando un módulo importado puede pasarse mediante inyección de dependencias y su método spellCheckFile puede llamarse correctamente más adelante.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm not sure if this is supposed to work, but my use case is that I want to load a module once, then pass it around to various constructors using dependency injection so that they can call methods.
So I do
await _nodeJS.SynchronizationContext.RunAsync(async () =>
{
JSReference cspellModule = new(await _nodeJS.ImportAsync("./loadcspell", esModule: true));
builder.RegisterInstance(cspellModule);
}
And then later on I receive this reference in a constructor and try to call a method:
await _nodeJS.SynchronizationContext.RunAsync(async () =>
{
var spellCheckFileMethod = (JSPromise)cspellModule.GetValue().CallMethod("spellCheckFile", ...);
var spellCheckFileResults = await spellCheckFileMethod.AsTask(context.CancellationToken);
}
And got this:
Microsoft.JavaScript.NodeApi.JSException
HResult=0x80131500
Message=Invalid argument: Error in Call at D:\a\_work\1\s\src\NodeApi\JSValue.cs:666
StackTrace:
<Cannot evaluate the exception stack trace>
It works when loading the module locally.
- Lenguaje dominante
- C#
- Estrellas
- 783
- Forks
- 80
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/node-api-dotnet
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
microsoft/node-api-dotnet#484 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/node-api-dotnet#481 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 82/100
microsoft/node-api-dotnet#502 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/node-api-dotnet#486 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/node-api-dotnet#483 · 1 comentario · 1 reacción ·
Todos los issues de microsoft/node-api-dotnet
Issues similares
-
copilot documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
Broken Text debugger displayAbiertoneeds triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
spectreconsole/spectre.console#2221 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Failed to load AniDB titlesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
godotengine/godot-docs#12428 ·
Los mantenedores suelen responder en 1 día
-
.NET triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
microsoft/semantic-kernel#14526 ·
Los mantenedores suelen responder en 4 días