曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專(zhuān)區(qū)VB語(yǔ)言 → 如何將Option Strict的設(shè)置保持為On(Add-In技術(shù))-.NET教程,VB.Net語(yǔ)言


  共有8632人關(guān)注過(guò)本帖樹(shù)形打印

主題:如何將Option Strict的設(shè)置保持為On(Add-In技術(shù))-.NET教程,VB.Net語(yǔ)言

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
如何將Option Strict的設(shè)置保持為On(Add-In技術(shù))-.NET教程,VB.Net語(yǔ)言  發(fā)帖心情 Post By:2010-12-14 12:21:55

在一次vsm的專(zhuān)訪中,dan appleman提到:“我希望visual studio 項(xiàng)目能夠在缺省狀態(tài)下將option strict設(shè)置為on,而無(wú)需用手工編輯向?qū)0濉!笨赡芎芏喑绦騿T都會(huì)認(rèn)同dan的觀點(diǎn)-- 在vb.net實(shí)現(xiàn)中,將option strict off設(shè)置成缺省狀態(tài)是mircosoft一大錯(cuò)舉。但事實(shí)上你不必非得按照microsoft的這一設(shè)定。在以下這個(gè)技巧中,我會(huì)介紹如何建立一個(gè)自動(dòng)將option strict設(shè)置為on的add-in方法(用這個(gè)方法你可能都會(huì)忘記如何使用手動(dòng)添加了)。

第一步是通過(guò)使用add-in wizard來(lái)建立一個(gè)新的visual studio add-in 項(xiàng)目,并將其命名為vboptionstricton。當(dāng)向?qū)Ыê昧诉@個(gè)add-in 并打開(kāi)了connect.vb模塊的代碼窗口之后,你可以在這個(gè)connect類(lèi)中聲明兩個(gè)類(lèi)級(jí)(class-level) 變量。你需要將向?qū)Фx的這兩個(gè)變量:dim applicationobject as envdte.dte
dim addininstance as envdte.addin

用以下兩個(gè)變量聲明來(lái)取代:private _app as envdte.dte
private withevents _solutionevents as solutionevents

接下來(lái),在public onconnection 的事件處理(event handler)中將向?qū)傻拇a:applicationobject = ctype(application, envdte.dte)
addininstance = ctype(addininst, envdte.addin)

用以下兩個(gè)給變量賦值的語(yǔ)句來(lái)取代:_app = ctype(application, envdte.dte)
_solutionevents = _app.events.solutionevents

然后,在solution explorer中選擇vboptionstricton項(xiàng)目,并通過(guò)在add reference 對(duì)話框的.net tab里選擇vslangproj assembly來(lái)添加一個(gè)reference。同時(shí),在connect.vb模塊的代碼頂部加上imports vslangproj語(yǔ)句。 vslangproj assembly提供了名為prjoptionstrict的列舉(enumeration),其中包含optionstrict的可能值(on, off)。

現(xiàn)在你可以開(kāi)始將option strict設(shè)置成on了。整個(gè)add-in 過(guò)程包括四個(gè)加入到connect類(lèi)的小的vb.net子過(guò)程。add-in過(guò)程不需要用戶進(jìn)行干涉因而無(wú)需使用用戶界面。前兩個(gè)過(guò)程是同一個(gè)方法的重載(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 opti.
         propoptionstrict.value = _
            prjoptionstrict.prjoptionstricton
         .save() save changes to the project.
      end if
   end with proj
end sub

通過(guò)使用上述重載,你可以得到兩種方法(用最少的重復(fù)代碼):一個(gè)將open solution中所有項(xiàng)目的option strict設(shè)置成on的不帶參數(shù)的方法和另一個(gè)將單獨(dú)指定項(xiàng)目中的option strict設(shè)置成on的帶proj參數(shù)的方法。

接下來(lái)建后兩個(gè)過(guò)程。每個(gè)過(guò)程各調(diào)用一個(gè)setoptionstricton方法:private sub _solutionevents_opened() _
   handles _solutionevents.opened
      call setoptionstricton()
   end sub

   private sub _solutionevents_projectadded( _
      byval project as envdte.project) handles _
      _solutionevents.projectadded

      call setoptionstricton(project)
   end sub

打開(kāi)visual studio中的一個(gè)solution將會(huì)觸發(fā)第一個(gè)事件處理(_solutionevents_opened),激活add-in會(huì)確保當(dāng)前vb項(xiàng)目中的option strict被設(shè)置成on。這些項(xiàng)目可能是在你安裝add-in之前就建好的,也可能是從一個(gè)沒(méi)有裝這個(gè)add-in的其他開(kāi)發(fā)者那里拿來(lái)的。在將一個(gè)新的或是以前建好的項(xiàng)目加入到當(dāng)前的solution中后會(huì)觸發(fā)另一個(gè)事件處理(_solutionevents_projectadded),當(dāng)你用項(xiàng)目向?qū)г谛陆ǖ膕olution中加入一個(gè)項(xiàng)目模板時(shí)也會(huì)觸發(fā)這一事件。這一處理確保在所有新建vb項(xiàng)目中的option strict是on的狀態(tài)。

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

如何將Option Strict的設(shè)置保持為On(Add-In技術(shù))-.NET教程,VB.Net語(yǔ)言








簽名
主站蜘蛛池模板: 亚洲欧洲日产国码av系列天堂| 久久精品一区二区三区av| 天天影视色香欲综合免费| 三级精品在线观看| 国产亚洲成AV人片在线观看| 最新国产在线拍揄自揄视频| 老汉色av影院| 久久综合九色综合97伊人麻豆| 国产大秀视频在线一区二区| 日本护士handjob| 青青草在视线频久久| 中文字幕在线视频一区| 午夜国产羞羞视频免费网站| 性欧美18-19sex性高清播放| 免费在线视频a| 久久777国产线看观看精品| 又粗又硬又黄又爽的免费视频| 小兔子好大从衣服里跳出来 | 国产在线精品一区二区不卡麻豆| 波霸女的湮欲生活mp4| 69女porenkino| 九月婷婷人人澡人人添人人爽| 国内自拍视频一区二区三区| 欧美巨大xxxx做受高清| 国产东北老头老太露脸| 亚洲性图第一页| 国产午夜视频在线观看| 好男人影视在线WWW官网| 欧美人与牲动交xxxx| 试看91福利区体验区120秒| a级毛片在线免费观看| 亚洲av无码一区二区二三区| 国产91免费在线观看| 在线观看国产一区二区三区| 最新版天堂中文在线| 福利网站在线播放| a亚洲Va欧美va国产综合| 大地资源在线资源免费观看| 色噜噜狠狠色综合成人网| 999无色码中文字幕| 久久99精品久久久久久青青日本|