如何利用 .NET 的 Regex 過濾所有特殊字元 (其他語言適用)

分享到噗浪!

今天有個同事寫了一個小程式要將欄位中所有特殊字元過濾掉,他雖然用的是 規則運算式 (Regular Expression) 但寫法卻有瑕疵,我在 Code Review 的時候立即聞到這個程式碼的壞味道,很快的也用另一段更短的規則運算式 來解決這個小需求,而且也更加符合客戶的需要。

... 繼續閱讀 ...

  

此文章由 will 發表於 2010/4/27 下午 10:05:26

永久連結 | 評論 (6) | 此文章的RSSRSS comment feed |

分類: .Net | C# | 心得分享

標籤: ,

如何避免相同的 ConsoleApp 或 WinForm 同時間重複執行

分享到噗浪!

前幾天在寫主控台程式 (Console Application) 時突然想到一個避免程式在同時間重複執行的機制,在噗浪發問與自行研究過後發現最彈性的實做方式是利用 .NET 內建的 Mutex 類別進行實做,幾乎任何情況下都能輕易實做程式不重複執行的目的,包括單機環境與多人使用的伺服器環境。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/10/23 下午 11:13:01

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: C# | .Net

標籤: , , , ,

如何確保寫入檔案時「檔案名稱」與「目錄名稱」正確無誤

分享到噗浪!

當要在檔案系統 (Filesystem) 寫入檔案時必須指定完整的路徑與檔名,但有時「檔案名稱」需透過程式指定時就有可能發生「檔案名稱無效」的錯誤,這時就需要透過程式過濾掉一些無效字元,才能讓成功建立檔案。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/10/19 上午 11:59:00

永久連結 | 評論 (9) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , , , , , ,

關於 C# 的 using 陳述式在實務應用上的基本觀念

分享到噗浪!

之前偶有機會看到 MSDN 論壇上有人提到關於使用 using 陳述式的錯誤觀念 (看到不止一次),由於自己也經常在用,不知道原來有人會誤以為使用 using 會將所有例外狀況 (Exception) 給吃掉,但事實上並非如此,請讓我娓娓道來。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/10/12 下午 10:27:25

永久連結 | 評論 (10) | 此文章的RSSRSS comment feed |

分類: C# | .Net | Tips

標籤: , , ,

解決 XmlWriter 輸出的 XML 無法正確設定 Encoding 的問題

分享到噗浪!

這問題我遇到第二次了,第一次遇到時濛濛懂懂的解決了。但不知為何越來越有種不想讓自己迷迷糊糊過一生的感覺,所以拼了命也要將模糊的地帶給釐清,於是又花了好幾個鐘頭把來龍去脈給釐清,避免日後又再度遇到同樣的問題。這是個關於透過 XmlWriter 撰寫 XML 的問題,不管我如何設定 Encoding 編碼都無法改變輸出的編碼,經過一番努力辯證之後才徹底釐清觀念,以後也不會再混淆了。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/10/3 上午 12:51:17

永久連結 | 評論 (5) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , , ,

如何利用「自訂例外狀況」處理無法繼續執行的錯誤

分享到噗浪!

try-catch 幾乎是每天必碰的程式碼,新手程式設計師應該很容易瞭解 try-catch 該怎麼使用,但不見得能深入思考「為什麼」要有 例外狀況(Exception) 的存在,存在的理由很多,但我個人認為最重要也最單純的理由是『例外狀況試圖不讓你的程式繼續執行下去』,這聽起來像是個廢話,但或許有人沒有認真的想過這個問題,而這樣的一個理由在面對日常程式開發上又有什麼重大的影響呢?

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/9/30 下午 12:31:07

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , ,

如何善用「偵錯模式」進行 ASP.NET 網站或 .NET 程式開發

分享到噗浪!

在專案開發初期,我們都會寫很多測試程式碼(Test Code)用來紀錄或顯示程式執行時期的狀態,雖然開發環境有中斷點 (Breakpoint) 可以使用,但程式部署到測試機或正式機時卻未必有開發工具可用,這時利用自己寫的測試程式碼就非常有用,但專案上線前若又需要把測試程式碼刪除頗為麻煩,今天我就打算分享一些很實務的偵錯開發技巧。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/9/16 下午 08:57:23

永久連結 | 評論 (4) | 此文章的RSSRSS comment feed |

分類: ASP.NET | ASP.NET MVC | Visual Studio | .Net | C#

標籤: , , , , , ,

分享一個在 .NET / C# / ASP.NET 中修改網址結構的好方法

分享到噗浪!

我們有個常見的功能是限制使用者導向到 SSL 的網頁,這時我們就必須修改 HTTP 要求(Request)的網址到 https 的網址,或是需要修改網址的部分結構(例如 schema 或 port 等等),這時我們可能會用字串取代 String.Replace 方法 (如下範例),但這種寫法有很多瑕疵,以下是本篇文章的分析報導。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/9/3 下午 11:55:00

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | C#

標籤: , , ,

分享一個常用的 System.Web.HttpRuntime.Cache 程式碼

分享到噗浪!

在 Web 的世界裡活用 Cache 已經是不可或缺的觀念與技能之一,即便不是 Web 環境,Cache 也是非常重要的技能之一,所以我們現在的專案之中也有越來越多案子需要實做 Cache 機制,以下分享我們常用的 Cache 相關程式碼。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/8/4 下午 07:16:35

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET | .Net | C#

標籤: , ,

Mono 2.4.2 已釋出並正式支援 ASP.NET MVC 與 C# Shell

分享到噗浪!

Mono 2.4.2 已釋出,除了修正超過 150 的 Bugs 外,這一版還有個特點就是正式支援 ASP.NET MVC 的執行環境,以及 C# Shell 可以讓你把 C# 程式碼檔 Shell Script 來執行,而這兩個功能正是我想要的。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/6/30 上午 11:06:00

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET MVC | C#

標籤: , ,

如何利用 .NET 檢查某「路徑字串」是檔案或目錄

分享到噗浪!

這好像不是什麼有意義的題目,雖然我知道有 File.ExistsDirectory.Exists 可用,只是我昨天心血來潮想找找 .NET Framework 中是否有檢查某「路徑字串」是「檔案」或「目錄」的方法(Method),一開始先猜想 Path 類別是否有相關的 Method,但找不到。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/6/28 下午 03:19:49

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: C# | .Net

標籤: , , ,

如何利用 .NET 對 byte[] 進行 Reguar Expression 比對

分享到噗浪!

記得以前在寫 Perl 或 PHP 時都可以直接用內建的 Regular Expression 功能直接比對二進位的字串內容,但到了 .NET 就不知道怎麼做了,因為當你使用 System.Text.RegularExpressions 命名空間所接受的輸入參數只有 String 型別,並不接受 byte[] 位元陣列。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/6/22 下午 03:04:23

永久連結 | 評論 (5) | 此文章的RSSRSS comment feed |

分類: .Net | C# | Tips

標籤: , , , , , ,

如何讓 Windows Service 應用程式在特定條件下自行停止

分享到噗浪!

之前分享過 "如何透過 C# 啟動、停止、重新啟動 Windows 服務",這是從一個「程序外」的角度來談如何透過 C# 控制服務狀態。但是最近卻遇到需要在執行中的 Windows Service 應用程式中在特定運作條件下需自行停止的情況,也就是「程序本身」要「自我了結」的狀況,我真的試了好久才試出來。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/6/9 下午 05:17:05

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , ,

如何透過 .NET 送出一個包含 S/MIME 簽章的郵件

分享到噗浪!

加入憑證簽章的郵件必須使用 S/MIME 標準,之前為了讓系統發出的郵件可以加入憑證簽章費了好一番功夫,有鑑於此需求非常罕見,在國內我是沒找到任何相關資料,即便在國外的網站相關資訊也很少,所以特此紀錄一下當時研究的過程。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/6/6 下午 09:20:14

永久連結 | 評論 (9) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | C# | Security

標籤: , , , ,

.NET 執行外部程式如何設定 Timeout 時間 (同步/非同步)

分享到噗浪!

在 .NET 裡要執行外部程式我們都是用 System.Diagnostics.Process.Start 方法,不過我們在執行外部程式時經常會需要設定 Timeout 逾時時間,以確保原本的主程式能夠繼續運作下去。除此之外,我今天也會介紹「同步」與「非同步」的 Timeout 撰寫技巧。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/5/11 下午 03:20:31

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , ,

如何透過 C# 啟動、停止、重新啟動 Windows 服務

分享到噗浪!

由於最近都在研究 Setup Project,所以在安裝解除安裝 Windows 服務程式時都會需要透過自訂動作操作 Windows 服務的啟動或停止,今天我就來分享幾個透過 C# 對 Windows 服務啟動、停止、重新啟動的方法。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/4/8 下午 10:56:25

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: ,

解說幾個 EventLog 常用操作方法與重要觀念

分享到噗浪!

最近在開發一些 Windows Service 程式,由於過程中修修改改的,所以藉此整理一下思緒,也順手開發出一套簡易的 EventLog 管理工具,可方便建立、刪除、查詢 EventSource 的相關資訊,也可以刪除 LogName 等資料,避免程式在寫入 EventLog 的時候發生錯誤。

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/3/31 下午 07:52:16

永久連結 | 評論 (5) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤:

用 C# 撰寫序列化(Serialize)與反序列化(Deserialize) - Part 2

分享到噗浪!

... 繼續閱讀 ...

  

此文章由 will 發表於 2009/3/24 下午 12:21:50

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , ,