[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;
}
Próbuję zapisać KeyValuePair<K,V>
w asp.net userprofile i to również zapisuje, ale kiedy mam do niego dostęp, pokazuje zarówno właściwość klucza i wartości zerowej, czy ktoś może mi powiedzieć, gdzie się mylę?Czy możemy zapisać KeyValuePair <K,V> w profilu użytkownika?
W LoadProfile()
k i v są puste.
Web.config
<profile enabled="true" inherits="SiteBuilder.Models.KeyValue">
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
Spróbowałbym nadać mu odrębną nazwę z twojej własności, tj. Zapisać i przeczytać '[" _KV "]" lub coś podobnego - nie mogę sobie wyobrazić, dlaczego to może coś zmienić, ale może to być serializacja. – Rup
Nie mogę odtworzyć tego w nowym projekcie MVC3 (tzn. Działa poprawnie). Czy możesz podać kompletny przypadek testowy? W przeciwnym razie poleciłbym sprawdzić swój przepływ - być może w momencie, w którym wywołujesz LoadProfile(), nie ma on wartości. – georgiosd