我正在創建將從中派生特定頁面的基類。也就是說,它不是從System.Web.UI.Page繼承我的頁面,而是從MyPage繼承而來(它繼承自System.Web.UI.Page)。從App_Code訪問asp.net配置文件
但是,我似乎無法訪問配置文件屬性。即使它們都是從Page繼承的,我只能訪問Profile屬性,如果我處於實際的頁面級別。
我確定這只是我對頁面生命週期的誤解,但是有沒有一種方法可以從App_Code中定義的自定義類訪問配置文件?
我正在創建將從中派生特定頁面的基類。也就是說,它不是從System.Web.UI.Page繼承我的頁面,而是從MyPage繼承而來(它繼承自System.Web.UI.Page)。從App_Code訪問asp.net配置文件
但是,我似乎無法訪問配置文件屬性。即使它們都是從Page繼承的,我只能訪問Profile屬性,如果我處於實際的頁面級別。
我確定這只是我對頁面生命週期的誤解,但是有沒有一種方法可以從App_Code中定義的自定義類訪問配置文件?
當您在頁面中時,您可以使用ProfileCommon類訪問配置文件。 profilecommon類是在編譯web項目期間由web.net自動從web.config配置文件設置生成的。
如果您想使用app_code文件夾中的配置文件,則必須使用profilebase類。 Profilecommon在頁面中可用也來自此類。
Profilebase可就是這樣
HttpContext.Profile or HttpContext.Current.Profile
訪問要讀你需要做的概況值以下
HttpContext.Profile.GetPropertyValue("propertyName");
要將值寫入到你需要寫
HttpContext.Profile.SetPropertyValue("propertyName", "propertyValue");
輪廓
您可以通過將強類型配置文件屬性轉換爲ProfileCommon來訪問它們像這樣輸入:
Dim Profile as ProfileCommon = CType(HttpContext.Current.Profile, ProfileCommon)
Profile.MyProperty1 = "Testing"
Profile.MyProperty2 = "Cool"
如果要爲其他用戶獲取配置文件屬性值(相對於處於活動狀態)這工作:
Dim theUser As MembershipUser = Membership.GetUser(userID)
Dim theUserProfile As ProfileBase = ProfileBase.Create(theUser.UserName, True)
Dim theProperty As String = theUserProfile.GetPropertyValue("Property")
你會在代碼中使用的ProfileCommon落後,但它在App_Code中不可用。
參考號:MSDN