JSValue returned by Import() don't survive dependency injection
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- csharp, javascript, node.js
Direção de pesquisa
Comece em src/NodeApi/JSValue.cs:666 e reproduza a falha usando o fluxo de ImportAsync, RegisterInstance e injeção via construtor mostrado na issue. Compare-o com o módulo carregado localmente que funciona, concentrando-se em como o JSReference sobrevive entre chamadas do contexto de sincronização. Está concluído quando um módulo importado puder ser passado por injeção de dependência e seu método spellCheckFile puder ser chamado com sucesso posteriormente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- C#
- Estrelas
- 788
- Forks
- 80
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/node-api-dotnet
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
microsoft/node-api-dotnet#484 ·
-
Embedding args occasionally get trailing garbage on .NET (missing null terminator on a pooled buffer)Talvez já em andamento @tolmachev-pravo assumiu há 96 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
microsoft/node-api-dotnet#481 ·
-
JSError.ThrowError(Exception) aborts the process when a Worker terminates during a .NET callTalvez já em andamento @GalaxiasKyklos assumiu há 5 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 18/100
microsoft/node-api-dotnet#505 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 70/100
microsoft/node-api-dotnet#504 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 82/100
microsoft/node-api-dotnet#502 ·
Todas as issues de microsoft/node-api-dotnet
Issues semelhantes
-
bug priority: P2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Parameterless constructor is not a must-provided by user when a struct has a field initializerAberta:watch: Not Triaged dotnet-csharp/svc fundamentals/subsvc
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Wrong values of Kernel32.FileShare.Delete and Kernel32.FileAttributes.PosixSemanticsTalvez já em andamento @ElectLive assumiu hoje. Abertabug good first issue help wanted
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 83/100
ForNeVeR/TruePath#241 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
files-community/Files#19047 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia