如果你使用Visual Studio的 File --> New Web Site 來設計專案時, Web.config定義好Profile 的屬性並存檔之後, 在程式中使用Profile 會有Intellisence 自動列表相關屬性.
WebSite模式是將profile的properties 建立成一個Strongly Type, 請看下圖:
可是如果使用File --> New Project , 建立ASP.NET Web Application時, Web.config定義好Profile 的屬性並存檔之後, 在程式中使用Profile, Intellisence 所列表的資訊竟與前者完全不同, 而且並沒有定義好的屬性... 真是傷腦筋!!
用Object Browser 完全看不到Strongly type 的Profile類別...
這難道就不能用Profile 的功能了嗎? 答案: 並不是...
只是寫起來真的很麻煩, 必須使用HttpContext.Current.Profile的SetPropertyValue及GetPropertyValue存取屬性內容.
例如, 修改FirstName 的屬性
HttpContext.Current.Profile.SetPropertyValue ("FirstName", "Lisa")
讀取FirstName的屬性
Dim FName As String = HttpContext.Current.Profile.SetPropertyValue ("FirstName").ToString()
Ps.這是上課時同學發現Profile 沒有IntelliSense, 仔細看一下Soluction Explorer 才發現是專案模式而不是Web Site模式....但還是感到相當意外, 竟然在專案模式下的Profile不是Strongly type..., 只好用原始方式找答案.
Ps.用VS2005與VS2008 的Project 模式的Profile 都不是Strongly type.
沒有留言:
張貼留言