C# | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET 如何將目前的 Cache 物件全部清空

最近在測試一個大量做 Cache 的網站,測試的過程中想說要先將 Cache 物件中的資料全部清空,才發現原來 ASP.NET 中內建的 Cache 物件 ( System.Web.Caching.Cache ) 並沒有支援 Clear() 方法,無法用一行把所有的 Cache 物件清空,然而我也嘗試看有沒有 Cache.Keys 物件,好讓我用 foreach 取得所有 Cache 的 Keys 進而一個一個刪除,結果也是沒有!原來要用以下這段程式碼才能將所有 Cache 中的 Keys 全部取出並逐一刪除:

... 繼續閱讀 ...

ListView + DataPager 在不使用 LinqDataSource 時會有問題

ASP.NET 3.5 中新增的 ListView、DataPager 與 LinqDataSource 控制項可說是絕佳拍檔,不過當你不使用 LinqDataSource 的時候會發生一個小問題,就是當你在第一次點選 DataPager 中的頁碼時並不會跟著跳頁,而點選第二次的時候才會正常運作!所謂的「不使用 LinqDataSource 的時候」是指你的資料來源的取得可能是寫在 Code Behind 中或是使用 ObjectDataSource 或 SqlDataSource 控制項,例如:

... 繼續閱讀 ...

ASP.NET 2.0 學習心得分享與推薦書單

在推薦書單之前,我想先分享一些學習的經驗,讓有有經驗、有潛力的程式設計師能夠快速上手,但針對缺乏程式設計經驗的人來說,這裡的建議也是有幫助的,只是需要更多時間看書、寫 Code、除錯、除錯、再除錯、然後改 Code、改 Code、再改 Code,改到自己滿意為止。

... 繼續閱讀 ...

整理一些 Regex 的學習資源

我第一次接觸 Regular Expression (正規表示式, 樣式比對) 是 8 年前在學 Perl 程式語言的時候,當初一開始接觸 Regular Expression 時好像看到無字天書一樣,實在是無法「直接看語法」猜到 Regular Expression 的意義,所以只好一個規則一個規則的看,看不懂先跳過,然後一行程式一行程式的練習寫、寫錯就一直改,直到熟能生巧後,日後的子不知道省去我多少時間啊!任何有需要「字串處理」的地方全部都用 Regular Expression 來寫,不管是 Perl, PHP, JavaScript, C# 全部都有支援 Regular Expression,且語法規則都大同小異,所以真的是學一次用一輩子,反正是程式設計師一定要學的技能就是了。

... 繼續閱讀 ...

在 HttpHandler 中使用 Session 的注意事項

在寫 HttpHandler 或 Generic Handler 的時候,如果要使用 Session 物件的話,在 Visual Studio 中你可以很輕易的透過 Intellisense 使用 context. 時取得 Session 物件,但是你會發現這個物件會傳的值永遠都是 null,所以你是無法取得或設定 Session 資料的,如果要在 HttpHandler 中使用 Session 的話,其 HttpHandler 的類別一定要繼承 System.Web.SessionState.IRequiresSessionState 介面(讓 context.Session 可讀可寫)或 System.Web.SessionState.IReadOnlySessionState 介面(讓 context.Session 唯讀),繼承這個介面不需要實做任何方法(Methods),只要單純的將介面繼承上去即可。

... 繼續閱讀 ...

如何解決字集混亂的問題

前天替一個網友解決了一個 Encoding 混亂的問題:ASP.net 傳遞中文至Web Service 亂碼問題,像這種這個問題最常出現在「非 Unicode 的系統」裡,像這個案例就是他們的 Web Service 是用 PHPNuSOAP 開發的,因為預設就是用 ISO-8859-1 的字集做資料的編碼與傳輸,所以資料在同樣的字集傳輸下,在非原生(Non-Native)支援 Unicode 的程式語言下很自然的不會發現問題,但是一到了 .NET 就不一樣了,.NET 是一個打從骨子裡支援 Unicode 的架構,所以對 Encoding 是很敏感的。

... 繼續閱讀 ...