在一次VSM的專訪中,Dan Appleman提到:“我希望Visual Studio 項目能夠在預設狀態下將Option Strict設定為On,而無需用手工編輯嚮導模板。”可能很多程式員都會認同Dan的觀點-- 在VB.NET實現中,將Option Strict off設定成預設狀態是Mircosoft一大錯舉。但事實上你不必非得按照Microsoft的這一設定。在以下這個技巧中,我會介紹如何建立一個自動將Option Strict設定為On的add-in方法(用這個方法你可能都會忘記如何使用手動添加了)。
第一步是通過使用Add-in Wizard來建立一個新的Visual Studio add-in 項目,並將其命名為VBOptionStrictOn。當嚮導建好了這個add-in 並開啟了Connect.vb模組的代碼視窗之後,你可以在這個Connect類中聲明兩個類級(class-level) 變數。你需要將嚮導定義的這兩個變數:Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
用以下兩個變數聲明來取代:Private _app As EnvDTE.DTE
Private WithEvents _SolutionEvents As SolutionEvents
現在你可以開始將Option Strict設定成On了。整個add-in 過程包括四個加入到Connect類的小的VB.NET子過程。add-in過程不需要使用者進行幹涉因而無需使用使用者介面。前兩個過程是同一個方法的重載(overload):Public Sub SetOptionStrictOn()
Dim proj As Project
''' Check and set OptionStrict for each project in
''' the open solution by calling an overloaded
''' version of this sub.
For Each proj In CType(_app.GetObject("VBProjects") _
, Projects)
Call SetOptionStrictOn(proj)
Next
End Sub
Public Sub SetOptionStrictOn(ByRef proj As Project)
Dim propOptionStrict As [Property]
With proj
propOptionStrict = _
.Properties.Item("OptionStrict")
''' If OptionStrict not "On"...
If CType(propOptionStrict.Value, _
prjOptionStrict) <> _
prjOptionStrict.prjOptionStrictOn Then
''' Set OptionStrict = "On".
propOptionStrict.Value = _
prjOptionStrict.prjOptionStrictOn
.Save() ''' Save changes to the project.
End If
End With ''' proj
End Sub
要瞭解Add-in Wizard的用法說明,你可以參考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxconcreatingaddin.asp。 要瞭解更多建立Visual Studio .NET add-in 資料,請參考http://msdn.microsoft.com/vstudio/downloads/automation.asp 和http://groups.yahoo.com/group/vsnetaddin.
關於作者:
Scott T. Hutchinson是一名微軟認證解決方案開發專家,也是獨立諮詢公司Clear Lake Services in Westlake Village, Calif的創始人。Scott 還是Los Angeles .NET Developers Group的外事主管(www.ladotnet.org)。你可以通過hutch@clearlakeservices.com 或 www.clearlakeservices.com 聯絡他。