共用方式為


Engine 介面

偵錯引擎,用以對應至程式碼類型。

命名空間:  EnvDTE80
組件:  EnvDTE80 (在 EnvDTE80.dll 中)

語法

'宣告
<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")> _
Public Interface Engine
[GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface Engine
[GuidAttribute(L"8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface class Engine
[<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")>]
type Engine =  interface end
public interface Engine

Engine 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 AttachResult 取得結果,指出附加的引擎是否失敗。
公用屬性 Collection 取得 Engines 集合。
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 ID 取得偵錯引擎的 ID GUID。
公用屬性 Name 取得 Engine 物件的名稱。
公用屬性 Parent 取得 Engine 物件的直接上層父物件。

回頁首

備註

用以判斷偵錯工具如何根據程式碼進行偵錯。 這會對應至 [附加至處理序] 視窗。

Engine 物件是用以指定在特定處理序中,要對哪一種程式類型進行偵錯。 例如,如果您只想要對某一處理序內的 Managed 程式碼進行偵錯,請使用 Common Language Runtime 偵錯引擎附加至該處理序中。 如果您想要同時偵錯某一處理序中的 Managed 和 Unmanaged 部分,請以 Interop COM+ 引擎附加。

注意事項注意事項

當您錄製巨集,並使用 Transact-SQL 偵錯引擎附加至偵錯程序時,巨集會傳回相同引擎名稱的兩個不同參考。 例如,dbgeng(0) = transprt.Engines.Item("T-SQL") 和 dbgeng(1) = transprt.Engines.Item("T-SQL")。 發生這種情況是因為在 Visual Studio 中實際上有兩個基礎Transact-SQL偵錯引擎: 一個用於 SQL Server 2005 偵錯引擎,另一個用於 SQL Server 2000 和 SQL Server 7 的 Transact-SQL 偵錯引擎。 透過 UI 附加至偵錯引擎程序時,會自動參考這兩個偵錯引擎,但在 Automation 程式碼中,必須使用唯一識別項 GUID 個別參考它們。 SQL Server 2005 的 GUID 是 {1202F5B4-3522-4149-BAD8-58B2079D704F},而 SQL Server 2000 和 SQL Server 7 Transact-SQL 偵錯引擎的 GUID 是 {5AF6F83C-B555-11D1-8418-00C04FA302A1}。 所以上述呼叫應該分別變更為 dbgeng(0) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") 和 dbgeng(1) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}")。

範例

' Macro code.
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic.ControlChars

Public Module Module1

    Sub ShowDefaultEngines()
        Dim dbg As EnvDTE80.Debugger2
        dbg = DTE.Debugger

        dbg.HexDisplayMode = True

        Dim transport As EnvDTE80.Transport
        transport = dbg.Transports.Item("default")

        Dim engine As EnvDTE80.Engine
        Dim strEngineList As String
        For Each engine In transport.Engines
            strEngineList = strEngineList + engine.Name + ", " + _
            engine.ID + ", " + engine.AttachResult.ToString + NewLine
        Next
        MsgBox(strEngineList)
    End Sub
End Module

請參閱

參考

EnvDTE80 命名空間

Engines