如何将Option Strict的设置保持为On(Add-In技术)

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
在一次VSM的专访中,Dan Appleman提到:“我希望Visual Studio 项目能够在缺省状态下将 Opti On Strict设置为 On,而无需用手工编辑向导模板。”可能很多程序员都会认同Dan的观点-- 在VB.NET实现中,将 Opti On Strict off设置成缺省状态是Mircosoft一大错举。但事实上你不必非得按照Microsoft的这一设定。在以下这个技巧中,我会介绍如何建立一个自动将 Opti On Strict设置为 OnAdd- In方法(用这个方法你可能都会忘记如何使用手动添加了)。

第一步是通过使用 Add- In Wizard来建立一个新的Visual Studio Add- In 项目,并将其命名为VB Opti On Strict On。当向导建好了这个 Add- In 并打开了C Onnect.vb模块的代码窗口之后,你可以在这个C Onnect类中声明两个类级(class-level) 变量。你需要将向导定义的这两个变量:Dim applicati OnObject As EnvDTE.DTE
Dim Add In Instance as EnvDTE. Add In

用以下两个变量声明来取代:Private _app As EnvDTE.DTE
Private WithEvents _Soluti OnEvents As Soluti OnEvents

接下来,在public OnC Onnecti On 的事件处理(event handler)中将向导生成的代码:applicati OnObject = CType(applicati On, EnvDTE.DTE)
Add In Instance = CType( Add In Inst, EnvDTE. Add In)

用以下两个给变量赋值的语句来取代:_app = CType(applicati On, EnvDTE.DTE)
_Soluti OnEvents = _app.Events.Soluti OnEvents

然后,在Soluti On Explorer中选择VB Opti On Strict On项目,并通过在 Add Reference 对话框的.NET tab里选择VSLangProj assembly来添加一个reference。同时,在C Onnect.vb模块的代码顶部加上Imports VSLangProj语句。 VSLangProj assembly提供了名为prj Opti On Strict的列举(enumerati On),其中包含 Opti On Strict的可能值( On, Off)。

现在你可以开始将 Opti On Strict设置成 On了。整个 Add- In 过程包括四个加入到C Onnect类的小的VB.NET子过程。 Add- In过程不需要用户进行干涉因而无需使用用户界面。前两个过程是同一个方法的重载(overload):Public Sub Set Opti On Strict On()
   Dim proj As Project
   ''' Check and set Opti On Strict for each project In
   ''' the open soluti On by call Ing an overloaded
   ''' versi On of this sub.
   For Each proj In CType(_app.GetObject("VBProjects") _
      , Projects)
      Call Set Opti On Strict On(proj)
   Next
End Sub

Public Sub Set Opti On Strict On(ByRef proj As Project)
   Dim prop Opti On Strict As [Property]
   With proj
      prop Opti On Strict = _
         .Properties.Item(" Opti On Strict")
      ''' If Opti On Strict not " On"...
      If CType(prop Opti On Strict.Value, _
         prj Opti On Strict) <> _
         prj Opti On Strict.prj Opti On Strict On Then

         ''' Set Opti On Strict = " On".
         prop Opti On Strict.Value = _
            prj Opti On Strict.prj Opti On Strict On
         .Save() ''' Save changes to the project.
      End If
   End With ''' proj
End Sub

通过使用上述重载,你可以得到两种方法(用最少的重复代码):一个将open soluti On中所有项目的 Opti On Strict设置成 On的不带参数的方法和另一个将单独指定项目中的 Opti On Strict设置成 On的带proj参数的方法。

接下来建后两个过程。每个过程各调用一个Set Opti On Strict On方法:Private Sub _Soluti OnEvents_Opened() _
   Handles _Soluti OnEvents.Opened
      Call Set Opti On Strict On()
   End Sub

   Private Sub _Soluti OnEvents_Project Added( _
      ByVal Project As EnvDTE.Project) Handles _
      _Soluti OnEvents.Project Added

      Call Set Opti On Strict On(Project)
   End Sub

打开Visual Studio中的一个soluti On将会触发第一个事件处理(_Soluti OnEvents_Opened),激活 Add- In会确保当前VB项目中的 Opti On Strict被设置成 On。这些项目可能是在你安装 Add- In之前就建好的,也可能是从一个没有装这个 Add- In的其他开发者那里拿来的。在将一个新的或是以前建好的项目加入到当前的soluti On中后会触发另一个事件处理(_Soluti OnEvents_Project Added),当你用项目向导在新建的soluti On中加入一个项目模板时也会触发这一事件。这一处理确保在所有新建VB项目中的 Opti On StrictOn的状态。

现在可以开始构建 Add- In了;你可以通过构建VB Opti On Strict OnSetup项目时建立的Setup.ext 文件来安装或者卸载它。你可以在Tools | Add- In Manager中激活或禁止这个 Add- In。如果你还想把 Opti On Strict设置成Off(在不卸载或者禁止VB Opti On Strict On Add- In的条件下),你可以通过在一个VB 模块的代码顶部加一个 Opti On Strict Off语句来实现。

要了解 Add- In Wizard的用法说明,你可以参考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vs Intro7/html/vxc Oncreat Ing Add In.asp。 要了解更多建立Visual Studio .NET Add- In 资料,请参考http://msdn.microsoft.com/vstudio/downloads/automati On.asp 和http://groups.yahoo.com/group/vsnet Add In.

关于作者:
Scott T. Hutch Ins On是一名微软认证解决方案开发专家,也是独立咨询公司Clear Lake Services In Westlake Village, Calif的创始人。Scott 还是Los Angeles .NET Developers Group的外事主管(www.ladotnet.org)。你可以通过hutch@clearlakeservices.com 或 www.clearlakeservices.com 联系他。

Onmou Ing/wangzhanyouhua/" title="seo,搜索引擎优化">seover="w Indow.status='正文--如何将 Opti On Strict设置保持为 On( Add- In 技术)';return true">
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值