microsoft / microsoft/node-api-dotnet
Support exporting generic types and methods to JS from a .NET module
Aperta
Nessuno ha ancora preso questa issue.
enhancement
- Lingua principale
- C#
- Stelle
- 783
- Fork
- 80
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hello,
The next code fails nodejs module generation with an error.
The code:
public class CollectionBase<T>
{
public CollectionBase()
{
}
public void Add(T item) { }
}
The error:
CSC : error NAPI1001: NotSupportedException : This method is not supported on signature types. at System.Reflection.Sig natureType.GetConstructors(BindingFlags bindingAttr) at Microsoft.JavaScript.NodeApi.Generator.SymbolExtensions.AsConst ructorInfo(IMethodSymbol methodSymbol) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToArray() at Microso ft.JavaScript.NodeApi.Generator.ModuleGenerator.ExportType(SourceBuilder& s, ITypeSymbol type, String exportName) at Mi crosoft.JavaScript.NodeApi.Generator.ModuleGenerator.ExportModule(SourceBuilder& s, ITypeSymbol moduleType, IEnumerable`1 exportItems) at Microsoft.JavaScript.NodeApi.Generator.ModuleGenerator.GenerateModuleInitializer(ISymbol moduleInitial izer, IEnumerable`1 exportItems) at Microsoft.JavaScript.NodeApi.Generator.ModuleGenerator.Execute(GeneratorExecutionCo ntext context) [ConsoleApp1.csproj]
Command:
dotnet clean
dotnet build-server shutdown
dotnet publish ConsoleApp1.csproj -r win-x64 -f net8.0
Version: 0.7.8
AOT is enabled
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il problema con il CollectionBase generico fornito e il comando dotnet publish. Inizia da SymbolExtensions.AsConstructorInfo e ModuleGenerator.ExportType nello stack trace; il lavoro è completato quando i tipi e i metodi generici possono essere esportati nel modulo Node.js generato senza l'eccezione NAPI1001.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, node.js
- Ambito
- api
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100