首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

System.Web.Routing 程式碼解析:RouteCollection 類別

     編輯:關於ASP.NET

RouteCollection 結構

繼承 Collection<RouteBase> 並內部封裝 Dictionary<string, RouteBase> (_namedMap),同時支援索引存取與名稱查找。

資料一致性規則

Route 特徵CollectionDictionary
有 Name✓✓ (Key=Name)
無 Name✓✗

移除/設定項目時同步維護兩者一致性。

執行緒安全:ReaderWriterLock 包裝

public IDisposable GetReadLock() {
    _rwLock.AcquireReaderLock(-1);
    return new ReadLockDisposable(_rwLock);
}
public IDisposable GetWriteLock() {
    _rwLock.AcquireWriterLock(-1);
    return new WriteLockDisposable(_rwLock);
}

巢狀 ReadLockDisposable/WriteLockDisposable 實作 IDisposable,配合 using 區塊自動釋放鎖定,極佳的鎖定模式範例。

核心方法

  • GetRouteData:遍歷集合呼叫各 Route 比對,回傳首個成功的 RouteData。
  • GetVirtualPath:依名稱或值集合生成虛擬路徑,自動加上應用程式路徑前綴。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved