I recently ho appreso che qualsiasi oggetto con un metodo GetAwaiter
che restituisce un awaiter può essere await
-ed. Questo è vero anche se si tratta di un metodo di estensione, che significa in pratica qualsiasi oggetto può essere reso await
, se lo si desidera.È possibile stabilire se un oggetto è attendibile in fase di runtime?
Ma c'è un modo per dire al runtime se un oggetto è await
-able? La riflessione normale non funzionerà, poiché non elenca i metodi di estensione di un oggetto.
Non ho una particolare necessità in mente quando faccio questa domanda, sono solo curioso di sapere se è possibile.
No, perché entrambi i metodi utilizzano la digitazione anatra che viene eseguita dal compilatore. Anche se tu potessi, cosa vorresti fare con quelle informazioni? –
C'è un motivo semplice per cui non è possibile cercare i metodi di estensione con la riflessione? Posso capire perché non sono prontamente disponibili, ma non vedo un motivo per cui non puoi cercarli. – 31eee384
@ 31eee384 il set di estensioni disponibili dipende dalle istruzioni using nel codice sorgente o dal set di assembly che si verificano per essere caricati al momento. – usr