Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Brouter finds no routes on WebAssembly when one type of the app assembly needs an assembly that isn't loaded

Chiusa
#14,335 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Una pull request collegata è già stata integrata.

  • #14336 di @yasmoradi — integrata

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, wasm
Ambito
backend

Direzione di ricerca

Start with BrouteScanner.Discover and the Assembly.GetTypes() call mentioned in the stack trace; check the scanner's existing handling of ReflectionTypeLoadException and the WebAssembly failure described here. Reproduce with a type whose base type or interface is in an unloaded lazy loaded assembly. Done means route discovery skips the unresolvable type and the app starts with its routes available.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Brouter reads the app's types with Assembly.GetTypes() and catches ReflectionTypeLoadException, so a type that can't be loaded is skipped. On WebAssembly, Mono throws FileNotFoundException instead when a type's base type or interface lives in an assembly that isn't loaded yet, for example one marked BlazorWebAssemblyLazyLoad. The exception escapes Brouter.OnInitialized, so no route is found and the app breaks at startup.

I hit it in bit Boilerplate while lazy loading SignalR: SignalRInfiniteRetryPolicy implements IRetryPolicy from Microsoft.AspNetCore.SignalR.Client.Core, so that assembly has to stay eagerly loaded.

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.SignalR.Client.Core, Version=10.0.14.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies.
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at Bit.Brouter.BrouteScanner.aa(Assembly , HashSet`1 , List`1 )
   at Bit.Brouter.BrouteScanner.Discover(Assembly , IReadOnlyList`1 )
   at Bit.Brouter.Brouter.bS()
   at Bit.Brouter.Brouter.OnInitialized()
Lingua principale
C#
Stelle
1.4k
Fork
264
Merge medio
10h 7m
PR unite (30g)
419

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bitfoundation/bitplatform

Tutte le issue di bitfoundation/bitplatform

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.