2011-01-31 16 views

Respuesta

-1

La vista rápida muestra los métodos y las propiedades que existen y son accesibles en la clase, por lo que una solución sería utilizar la reflexión para obtener esta información.

// Obtiene los métodos de la clase MyClass MethodInfo [] methodInfos = typeof (MyClass) .GetMethods (BindingFlags.Public | BindingFlags.Static);

+1

Gracias pero lo que quiero es no enumerar todos los métodos de una clase, sino obtener la información de la vista rápida, y cuando muevo el mouse sobre un elemento de código no sé en qué clase existe este elemento de código para usar su solución . – rodi

0

No tengo un ejemplo de código, pero encontré la siguiente documentación para el método ViewFilter.HandleQuickInfo que suena como los pasos que debe seguir.

El método de base llama al método GetCaretPos en el objeto IVsTextView pasado a la ViewFilter constructor para obtener la posición de intercalación actual. Esta posición se pasa luego al método OnSyncQuickInfo (IVsTextView, Int32, Int32) en el objeto Source (obtenido del objeto CodeWindowManager en el constructor ViewFilter). Si OnSyncQuickInfo (IVsTextView, Int32, Int32) devuelve texto, este método llama al método GetFullDataTipText para obtener información adicional del depurador si la depuración está activa. Finalmente, se utiliza un objeto nuevo (o actual) TextTipData para mostrar la información sobre herramientas.

Fuente: ViewFilter.HandleQuickInfo

Editar:

Puede recuperar la corriente IVsTextView usando 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)); 

Sin embargo, estoy atascado allí, y no poder hacer nada útil con IVsTextView.UpdateTipWindow, nunca llama nada en mi objeto ficticio pasado, así que supongo que requiere una IVsTipWindow ya es visible desde un servicio de idiomas.

+0

Gracias por su respuesta, pero desafortunadamente ya probé esta solución sin éxito. – rodi

Cuestiones relacionadas