在開發Resharper插件的過程中,我想在錯誤地使用上下文操作時向用戶顯示錯誤消息。有沒有辦法在Visual Studio中彈出窗口來向用戶傳遞Resharper異常消息?我正在開發一個帶Resharper 8和VS 2012的插件顯示來自resharper插件的異常消息
0
A
回答
3
您可以隨時使用MessageBox
- ReSharper還提供了一個靜態類,它提供了許多幫助器方法,可以很容易地顯示您想要的內容。它還允許添加「消息框處理程序」,以便在測試期間實際上不顯示消息框。或者,如果您要創建上下文操作,並且您(間接)從BulbActionBase
派生,則ExecutePsiTransaction
方法(應完成所有工作)可以返回Action<ITextControl>
。這允許您返回在快速修復/上下文操作完成後執行的操作,這可以是定位插入符號,更改選擇內容,執行模板或將工具提示顯示爲錯誤等任何操作。
您可以返回這樣的事情:
return tc => myLocks.QueueReadLock("MyContextAction",() => {
myTooltipManager.Show("Something went wrong!",
lifetime => new TextControlPopupWindowContext(lifetime, tc, myLocks, myActionManager);
});
這是用若干領域:IShellLocks myLocks
,ITooltipManager myTooltipManager
和IActionManager myActionManager
。這些可以通過ReSharper的組件模型被注入到組件的構造函數,或者你可以用solution.GetComponent<IShellLocks>
讓他們等
發生了什麼事是,你回來是發生在一個ITextControl
,並立即排隊另一個操作的操作在讀取鎖定時在UI線程上運行。第二個動作告訴工具提示管理器將錯誤消息顯示爲工具提示,並提供用於創建彈出窗口上下文的工廠方法(通過調用Show
創建並處置參數lifetime
,並允許清理上下文)。
你也可以看看ShowAtCaret
擴展方法爲ITooltipManager
- 我不記得Show
將放置工具提示。
相關問題
- 1. 顯示自定義異常消息
- 2. 不顯示異常消息
- 3. 顯示任何異常的JOptionPane消息
- 4. 安卓顯示我自己的錯誤消息I來自一個異常
- 5. WPF BackgroundWorker異常消息顯示
- 6. Xcode 4不顯示異常消息
- 7. 如何顯示異常消息(Razor/C#)
- 8. Laravel出納顯示異常消息
- 9. C++運行時,顯示異常消息
- 10. 僅顯示火鳥異常消息
- 11. 在異常中顯示消息
- 12. 顯示IOException異常到Primefaces消息
- 13. 爲什麼來自異常的自定義異常消息未在Xamarin解決方案中顯示?
- 14. 根據錯誤顯示自定義的異常消息
- 15. 顯示在ASP中的自定義異常消息MVC
- 16. 自定義的異常消息不在控制檯中顯示
- 17. FOSRestBundle:顯示我的自定義異常消息
- 18. 只顯示來自ApplicationException的消息
- 19. 顯示來自庫的消息框
- 20. Rails3:顯示來自模型的消息?
- 21. NotifyIcon顯示來自程序的消息
- 22. 如何顯示來自webmethod的消息?
- 23. 如何在Crystal Reports中顯示來自存儲過程的異常消息?
- 24. 顯示來自異步任務的消息
- 25. 在NativeScript中異步顯示來自Firebase的消息ListView
- 26. Windows窗體 - 顯示來自消息框的消息的問題
- 27. 自定義來自try-catch的異常消息
- 28. 異常消息
- 29. Java郵件消息異常
- 30. Python條件異常消息
剛使用'MessageBox.Show'有什麼問題?或者您是否有要求使這種方法行不通? – ChrisF