Brouter finds no routes on WebAssembly when one type of the app assembly needs an assembly that isn't loaded
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
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
- 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.
Altre issue di bitfoundation/bitplatform
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
bitfoundation/bitplatform#14070 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
bitfoundation/bitplatform#14380 ·
I maintainer di solito rispondono entro 1 giorno
-
Bdnd is not Lazy-load friendlyForse già presa @msynk l’ha presa oggi. Apertaarea / bdnd
bitfoundation/bitplatform#14374 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
The BlazorHeadlessUI name is too longForse già presa @msynk l’ha presa oggi. Apertaarea / bheadless
bitfoundation/bitplatform#14372 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Leftovers from the .NET 11 mergeForse già presa @yasmoradi l’ha presa 1 giorno fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
bitfoundation/bitplatform#14365 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bitfoundation/bitplatform
Issue simili
-
[Bug] Dashboard renders attachment links that resolve to 404 when the FILES binding is absentApertabug 優先: 低
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
area-ai bug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
dotnet/extensions#7893 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100