in

Darkthread

黑暗執行緒
All Tags » .NET » Tips (RSS)

Browse by Tags

  • 實戰小技巧 - .NET Exception Message、InnerException 與 ToString()

    前篇文章 提到 try catch 時若只保留 Exception.Message,可能遺失 InnerException 及 StackTrace 錯失破案重要線索。文章迴響顯示這是個值得介紹的實戰技巧,故再補充一篇。 在某些應用情境我們會選擇使用 try … catch 達成特定目的,例如:(註:Exception 的官方翻譯為例外狀況,這裡容我用較口語化的「錯誤」取代) 捕捉可預期錯誤,進行補救並繼續執行程式 例如:發現作業失敗時,Rollback 交易、寫 Log、通知管理員、退回前一步驟請使用者再試一次... 比程式直接 Crash 來得好。 捕捉可預期錯誤,改顯示較易懂的錯誤訊息 例如...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 02-12-2018
  • 小技巧-使用匿名型別快速捏出指定JSON格式

    同事有個小需求,已知城市、區域及郵遞區號要產生如下規格的 JSON 餵到前端: { "rows" : { "row" : [ { "City" : "台北市" , "Area" : "文山區" , "ZIP" : "116" } ] } } 先前介紹過 JObject 結合 dynamic 的 花式玩法 可以快速達成目標: static void TestJObject( string city, string area, string...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-25-2017
  • 筆記-使用 Dns.GetHostEntry 解析 IP 位址

    某排程使用以下程式碼產生 IEndPoint 以建立 Socket: IPEndPoint pEndPoint = new IPEndPoint(Dns.GetHostEntry(remoteHost).AddressList[0], remotePort); 其中用了 Dns.GetHostEntry(),好處是不管 remoteHost 傳入的是主機名稱還是 IP,一律可轉成 IPAddress。 排程在正式及測試環境運作多時,今天將程式移到另一網段機器上執行,remoteHost 為 IP 位址(假設為 192.168.1.1),與原本設定相同,確認新主機與 192.168.1.1 間網路暢通...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-21-2017
  • TIPS-快速輸入INotifyPropertyChanged屬性

    為了讓物件支援Data Binding,資料物件必須實作INotifyPropertyChanged介面,提供PropertyChanged事件,並在屬性值變動時,以便即時通知UI更新繫結對象的顯示內容。而實作INotifyPropertyChanged的類別,在宣告每個屬性時都要寫成如下格式: private bool connected; public bool Connected {     get { return connected; }     set     {        ...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-12-2013
  • 再探WebClient具名登入FTP的絕對路徑問題

    之前寫過一篇 System.Net.WebClient具名登入FTP的傳檔路徑問題 ,當時的結論認為WebClient在切換路徑時一律會加上user1,故無法存取user Home目錄以外的其他路徑。今天同事無意試出ftp:// ftpserver//booFolder//fooFolder//test.txt的寫法,能使用絕對路徑找到檔案。進一步研究才知道,ftp:// URI是可以指定絕對路徑的! 找到一篇MSDN 討論區文章 ,發現原來只要寫成ftp:// ftpserver//booFolder/fooFolder/test.txt就可以指定絕對路徑!(同事寫法中後面兩個/可以不用重複...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-22-2012
  • 筆記-顯示民國年與閏年蟲

    昨天是四年才出現一次的2/29,也是未滿四歲系統的小關卡,結果在 網路上 跟生活周遭還真目賭不少程式跌倒~~ 最常見的狀況是該顯示民國年的地方出現101/2/28而非101/2/29,究其根源,多半是當初程式在撰寫時使用了 DateTime.Today.AddYears(-1911).ToString("yyyy/MM/dd") 的簡便寫法,乍看之下比單獨抓出年份額外處理簡潔許多,卻隱藏了閏年判定基準不同的問題(民國101年是西元2012年為閏年,但減去1911為西元101年變成非閏年;另外若需要計算星期幾,這種計算方法也會出錯,只是會立即被揪出來),因此這隻閏年蟲就躲在一些2008...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 02-29-2012
  • 【笨問題專欄】不分大小寫的Dictionary<string, string>

    今天要分享的 笨問題 是: 寫程式時偶爾會需要Key不分大小寫的Hashtable(Dictionary<string, string>),大家都是怎麼解決的呢? 我最近才頓悟... using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static void Main( string [] args) { //我以前都這麼處理不分大小寫的Hashtable Dictionary< string , int > sillyBoy = new...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-18-2011
  • System.Net.WebClient具名登入FTP的傳檔路徑問題

    之前介紹過使用System.Net.WebClient類別進行FTP傳檔的 精簡寫法 ,今天發現一個問題。 某個Windows IIS FTP網站開放使用特定帳號user1登入後上傳或下載檔案,使用IE以 ftp:// ftp_ip_address/user1/test.txt的方式可以順利下檔案,但執行以下程式: using System; using System.IO; using System.Threading; using System.Net; public class CSharpLab { public static void Test() { WebClient wc = new...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-26-2011
  • 為dotConnect資料類別產生器加入客製邏輯

    雖然Oracle已經釋出 ODAC for Microsoft Entity Framework 11.2.0.2.30 ,但尚在Beta階段,加上平台侷限.NET 4.0,目前工作專案如需在Oracle上使用LINQ,還是以 devart的dotConnect for Oracle 為主。 最近在使用dotConnect for Oracle開發時,發現預設產生Model類別會自動抓取Oracle欄位的註解欄位,用 XML Documentation 加註在類別屬性上: /// <summary> /// There are no comments for JOBID in the...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-19-2011
  • TIPS-比對.NET Reference Type物件是否相等

    跟同事討論到自訂類別物件的比對問題,原則上Reference Type類別的物件,除非兩個變數指向同一個Instance,使用==或Equals(...)測試都會得到false,就算是兩個Instance的內容分毫不差也是枉然。當物件被當成WCF/Web Service參數來回傳送,背地裡會被序列化再還原,便會變成內容相同的另一個Instance(其實只要在不同Process間傳遞,因無法共享記憶體,就一定會產生這種結果),此時若直接使用==或Equals比對,得到的結果永遠為不相同。 我們可以透過 覆寫Equals及==、!=運算子 的方式,將"兩個物件是否相同"的定義調整為自訂比對條件...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 02-16-2011
第1頁,共5頁 (43個項目) 1 2 3 4 5 下一頁 >
Powered by Community Server (Non-Commercial Edition), by Telligent Systems