durante una discussione nel forum, mi era completamente passato di mente, il fatto che le matrici multidimensionali non sono serializzabili, o perlomeno non lo sono dalla classe LosFormatter, utilizzata da Asp.Net per salvare lo stato dei controlli nel ViewState.
può sembrare strano, visto che la classe è decorata con l'attributo [Serializable] e dispone di un TypeConverter.
ma scendiamo nel dettaglio, durante la serializzazione a lanciare un eccezione è LosFormatter di cui o estrapolato un parte di codice
..... else if (type1.IsArray) { Type type3 = type1.GetElementType(); output.Write('@'); if (type3 != type2) { int num3 = this.GetTypeId(type3); this.WriteTypeId(output, num3, type3); output.Write('<'); Array array1 = (Array) value; for (int num4 = 0; num4 < array1.Length; num4++) { this.SerializeValue(output, array1.<strong>GetValue</strong>(num4)); output.Write(';'); } } .........
LosFormatter controlla il tipo che sta serializzando, nel caso di un array, viene chiamto il metodo GetValue, è lui in fine a lanciare l'eccezione:
public object GetValue(int index) { if (this.Rank != 1) { throw new <strong>ArgumentException(Environment.GetResourceString("Arg_Need1DArray"));</strong> } return this.InternalGetValue(index, 0, 0); }
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22