[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;
}
Sto cercando di salvare KeyValuePair<K,V>
in asp.net userprofile e salva anche, ma quando sto accedervi, esso esposizione sia nullo chiave e il valore della proprietà, Qualcuno mi dice dove sbaglio?Possiamo salvare KeyValuePair <K,V> nel profilo utente?
In LoadProfile()
k e v sono nulli.
web.config
<profile enabled="true" inherits="SiteBuilder.Models.KeyValue">
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
Vorrei provare a dargli un nome distinto dalla proprietà, ad esempio salvare e leggere '[" _KV "]' o simile - non riesco a immaginare perché questo potrebbe fare la differenza, ma potrebbe essere per la serializzazione. – Rup
Non riesco a riprodurlo su un nuovo progetto MVC3 (cioè funziona bene). Puoi fornire un test case completo? Altrimenti ti consiglierei di controllare il tuo flusso - forse nel punto in cui stai chiamando LoadProfile(), non ha un valore. – georgiosd