Ho cercato un codice in un debugger associato al motore Razor View e ho notato che alcuni tipi appaiono in Debugger con un carattere punto finale alla fine del nome del tipo ad esempio:Cosa indica il punto finale su un tipo C#?
{Nancy. ViewEngines.Razor.RazorViewEngine.}
Qualcuno sa cosa indica questo? Non è valida la sintassi per usarlo quando si specifica un cast su un oggetto, quindi sono incuriosito da ciò che indica all'interno del debugger.
EDIT: Come richiesto dal @Damien_The_Unbeliever, screenshot della variabile nel debugger:
E il codice che sto guardando:
public TCompiledView GetOrAdd<TCompiledView>(
ViewLocationResult viewLocationResult, Func<ViewLocationResult, TCompiledView> valueFactory)
{
TCompiledView compiledView = default(TCompiledView);
compiledView = (TCompiledView)this.cache.GetOrAdd(viewLocationResult, x => valueFactory(x));
Per dare un Un po 'più di background, stiamo cercando di aggiungere il logging alla nostra Nancy View Cache per indagare su un problema intermittente con Razor Views che genera errori di compilazione, ma questo non è davvero rilevante per la ricerca ionico.
Questa libreria genera automaticamente il codice. System.CodeDom è visibile, forse alcuni Reflection.Emit da qualche parte e tu sei a metà strada verso una spiegazione. Basta presentare una segnalazione di bug con [il progetto] (https://github.com/NancyFx/Nancy/issues). –
Una stupida implementazione di 'ToString()' è la mia ipotesi. Controllalo sul tipo effettivo che puoi vedere nella finestra di controllo. – leppie
@leppie 'ToString' probabilmente fornisce qualcosa come' "Nancy.ViewEngines.Razor.RazorViewEngine + <> c__DisplayClass1" 'o simile. È una classe nidificata '<> c__DisplayClass1' dentro il tipo' RazorViewEngine' nel namespace 'Nancy.ViewEngines.Razor'. Piuttosto che chiamare 'ToString()' il debugger tenta di scrivere una classe esterna seguita da un punto (non un segno più) seguito dal nome della classe interna. Vedi la risposta aggiornata di Damien. –