JSValue returned by Import() don't survive dependency injection
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 35/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- csharp, javascript, node.js
研究方向
從 src/NodeApi/JSValue.cs:666 開始,使用 issue 中所示的 ImportAsync、RegisterInstance 和建構函式注入流程重現此故障。將其與能正常運作的本機載入模組進行比較,重點關注 JSReference 如何在同步內容呼叫之間保持有效。完成的標準是:匯入的模組可以透過相依性注入傳遞,並且之後能夠成功呼叫其 spellCheckFile 方法。
由索引模型根據 Issue 內容生成。
描述
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.
- 主要語言
- C#
- 星號
- 788
- 分支
- 80
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/node-api-dotnet 的其他 Issue
-
難度 1/5 1-3 小時 新手友好度 88/100
microsoft/node-api-dotnet#484 ·
-
Embedding args occasionally get trailing garbage on .NET (missing null terminator on a pooled buffer)可能已有人在做 @tolmachev-pravo 於 98 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 82/100
microsoft/node-api-dotnet#481 ·
-
JSError.ThrowError(Exception) aborts the process when a Worker terminates during a .NET call可能已有人在做 @GalaxiasKyklos 於 7 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 18/100
microsoft/node-api-dotnet#505 ·
-
難度 3/5 1-2 天 新手友好度 70/100
microsoft/node-api-dotnet#504 ·
-
難度 3/5 1-2 天 新手友好度 82/100
microsoft/node-api-dotnet#502 ·
查看 microsoft/node-api-dotnet 的全部 Issue
相似的 Issue
-
needs-triage
難度 2/5 1-3 小時 新手友好度 78/100
elsa-workflows/elsa-foundation#3130 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
-
enhancement
難度 2/5 1-3 小時 新手友好度 65/100
KnifeLemon/Filee#294 ·
維護者通常 1 天內回覆
-
good first issue
難度 1/5 1-3 小時 新手友好度 88/100
GlebKievsky/git-tips#4 ·
-
難度 1/5 1 小時以內 新手友好度 77/100
OrchardCMS/OrchardCore#20088 · 1 則留言 ·
維護者通常 1 天內回覆