2011-01-31 13 views

risposta

-1

La vista rapida mostra i metodi e le proprietà esistenti e accessibili sulla classe, quindi una soluzione sarebbe utilizzare la riflessione per ottenere queste informazioni.

// Ottiene i metodi della classe MyClass MethodInfo [] methodInfos = typeof (MyClass) .GetMethods (BindingFlags.Public | BindingFlags.Static);

+1

Grazie, ma quello che voglio non è elencare tutti i metodi di una classe, ma ottenere le informazioni della quickview, e quando sposto il mouse su un elemento di codice non sapevo in quale classe questo elemento di codice esiste per usare la tua soluzione . – rodi

0

Non ho un esempio di codice, ma ho trovato la seguente documentazione per il metodo ViewFilter.HandleQuickInfo che suona come i passi che devi fare.

Il metodo base chiama il metodo GetCaretPos sull'oggetto IVsTextView passato al costruttore ViewFilter per ottenere la posizione corrente del cursore. Questa posizione viene quindi passata al metodo OnSyncQuickInfo (IVsTextView, Int32, Int32) sull'oggetto Source (ottenuto dall'oggetto CodeWindowManager nel costruttore ViewFilter). Se OnSyncQuickInfo (IVsTextView, Int32, Int32) restituisce qualsiasi testo, questo metodo chiama quindi il metodo GetFullDataTipText per ottenere informazioni aggiuntive dal debugger se il debug è attivo. Infine, un nuovo oggetto (o corrente) TextTipData viene utilizzato per visualizzare la descrizione dell'utilità.

Fonte: ViewFilter.HandleQuickInfo

Edit:

È possibile recuperare l'attuale IVsTextView utilizzando IVsTextManager.

var textManager = Resolve.Service<IVsTextManager, SVsTextManager>(); 

IVsTextView textView; 
ErrorHandler.ThrowOnFailure(textManager.GetActiveView(fMustHaveFocus: 1, pBuffer: null, ppView: out textView)); 

Int32 caretRow, caretCol; 
ErrorHandler.ThrowOnFailure(textView.GetCaretPos(out caretRow, out caretCol)); 

Tuttavia, mi sono bloccato lì, e in grado di fare qualcosa di utile con IVsTextView.UpdateTipWindow, esso non chiama mai nulla sul mio oggetto fittizio passato, quindi presumo che richiede un IVsTipWindow già visibile da un servizio linguistico.

+0

Grazie per la risposta, ma sfortunatamente ho già testato questa soluzione senza successo. – rodi

Problemi correlati