每次在 Visual Studio 2005 的 Web site 專案裡面加入一個新的 Web Form 時,對話窗右下角有一個 "Place code in separate-file" 選項。每次這個選項有改變時,Visual Studio 2005 會記住這個設定,然後下次再 New 一個 Web Form 時,會採用上一次記住的設定。那麼,這個設定儲存在什麼地方?
 
通常這種暫時性的設定,都會放在 Document and Settings 目錄底下的某個資料夾,因此到裡面找了一下。看來 "place code in separate file" 選項應該是儲存在這裡:
C:\Documents and Settings\<使用者名稱>\Local Settings\Application Data\Microsoft\WebsiteCache\
 
先從這個目錄底下的 Websites.xml 找出網站的子目錄名稱,再查看這個子目錄裡面的 FileAttributes.xml,裡面有 subtype="Code" 和 subtype="ASPXCodeBehind"。規則是:如果一個 .aspx 沒有 code-behind 檔,就只會有一個 .aspx element;如果有,就還會有一個 .aspx.cs element,用 code-behinder 屬性指向關聯的 .aspx。
 
可是要等到將 Solution 關閉時,才會寫入 FileAttributes.xml。因此我想 Visual Studio 在開啟網站時就會讀取這個 xml 檔,然後以後每次 new 一個 Web Form 時,會在記憶體裡面記住最後一個 Web Form 的 coding-model,等到關閉 solution 時才寫回 FileAttributes.xml。
 
因為我用 RegMon 監看 registry 的寫入情形,發現在切換 place code in separate file 選項時並沒有寫入 registry 的跡象,所以猜測應該是先記在 memory 裡面吧!