[Serializable]
public class KeyValue : ProfileBase
{
public KeyValue() { }
public KeyValuePair<string, string> KV
{
get { return (KeyValuePair<string, string>)base["KV"]; }
set { base["KV"] = value; }
}
}
public void SaveProfileData()
{
KeyValue profile = (KeyValue) HttpContext.Current.Profile;
profile.Name.Add(File);
profile.KV = new KeyValuePair<string, string>("key", "val");
profile.Save();
}
public void LoadProfile()
{
KeyValue profile = (KeyValue) HttpContext.Current.Profile;
string k = profile.KV.Key;
string v = profile.KV.Value;
Files = profile.Name;
}
Tôi cố gắng tiết kiệm KeyValuePair<K,V>
trong hồ sơ người dùng asp.net và nó cũng tiết kiệm nhưng khi tôi truy cập vào nó, nó hiển thị cả khóa và giá trị tài sản null, ai có thể cho tôi biết tôi đang sai ở đâu?Chúng tôi có thể lưu KeyValuePair <K,V> trong hồ sơ người dùng không?
Trong LoadProfile()
k và v không có giá trị.
Web.config
<profile enabled="true" inherits="SiteBuilder.Models.KeyValue">
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
Tôi muốn đặt tên riêng biệt cho thuộc tính của bạn, tức là lưu và đọc '[" _KV "]' hoặc tương tự - không thể tưởng tượng tại sao điều đó có thể tạo sự khác biệt, nhưng có thể để tuần tự hóa. – Rup
Tôi không thể sao chép điều này trên một dự án MVC3 mới (tức là nó hoạt động tốt). Bạn có thể cung cấp một trường hợp thử nghiệm hoàn chỉnh không? Nếu không, tôi sẽ khuyên bạn nên kiểm tra luồng của bạn - có lẽ tại thời điểm bạn đang gọi LoadProfile(), nó không có giá trị. – georgiosd