第一次自製VS2008 Code Snippet
2 |
Visual Studio 2008裡Code Snippet是可提升Coding速度的好幫手,懂得善用的人能省下一大堆沒營養的打字動作! (保哥的這篇switch+enum密技就是很經典的例子)
最近在重翻舊程式,要將大量的資料庫存取程式改成不參與Transaction的LINQ to SQL資料存取,所以我就得把程式由原本的:
void SomeJob(string userId) {
AfaUser user = DataHelper.QueryUserInfo(userId);
...囉哩叭嗦...
...胡搞瞎搞...
}
改成:
void SomeJob(string userId) {
using (TransactionScope tx =
new TransactionScope(TransactionScopeOption.Suppress))
{
using (AfaDataContext db = DataHelper.GetAfaDataContext())
{
User user = db.Users.Where(u => u.UserId == userId);
...囉哩叭嗦...
...胡搞瞎搞...
}
}
}
手工修改時,步驟是:
- 先Copy & Paste using TransactionScope及using AfaDataContext的上半段在AfaUser那一列上方
- 找到胡搞瞎搞的最下方,補上兩個"}"
- 修改資料存取程式
其中 1) 跟 2) 用屁眼看都知道是不需用腦的機械化動作(謎之聲: 你的菊花會看東西哦? 我剛才偷放了本Objective-C教材在你屁股下,等下向我報告讀書心得。黑暗: 哇靠! 難怪肛肛一陣反胃... XD),懶惰如我,千方百計求偷雞是一定要的。
方法很簡單,我們可以自訂一個SurroundsWith Code Snippet,撰寫一個如下的AfaDataContextWoTrans.snippet檔案:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet?WT.mc_id=DOP-MVP-37580">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Using AfaDataContext without transaction</Title>
<Shortcut>
</Shortcut>
<Description>Wrap with using supressed TransactionScope and and using AfaDataContext</Description>
<Author>Jeffrey Lee</Author>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="csharp"><![CDATA[ using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Suppress))
{
using (AfaDataContext db = DataHelper.GetAfaDataContext())
{
$selected$
}
}]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
開啟VS2008的【Tools選單/Code Snippets Manager】(或按Ctrl-K, Ctrl-B),加入該檔案所屬路徑,接著就可以輕輕鬆鬆寫Code囉~~~
且慢,那個複雜的XML要自己用Notepad慢慢敲會不會太累了? 懶當然就要懶到最高點,介紹好工具一枚---Snippy!
在輸入方格填入相關資訊,就可以得到.snippet檔案,很方便吧!
[2010-04-08補充]網友星寂提供了另一套Code Snippet編輯工具--SnippetEditor,並附有圖文並茂的解說,一併提供大家參考!
【延伸閱讀】
Comments
# by 星寂
我都用另外一套0.0 http://www.dotblogs.com.tw/alonstar/archive/2010/01/06/12837.aspx
# by Jeffrey
to 星寂,謝謝分享,我將SnippetEditor的資訊補充在文後了。