'System.Data.SqlClient.SqlConnection' is not serializable

giovedì 20 novembre 2008 - 11.10

Amodio Profilo | Expert


slave a tutti
vorrei memorizzare nel viewstate una classe "profilo" in modo da salvare lo stato dei pulsanti in base a quello che l'utente puo' fare o meno.
la classe profilo nel costruttore ha un parametro connection che usa per prelevare i dati e valorizzare le properties
tutto va bene, fino a quando non cerco di salvare la classe nel view state:
viewstate("profilo")=objProfilo
e ritorna questo codice di errore :

Type 'System.Data.SqlClient.SqlConnection' in Assembly 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable


cosa posso fare per salvare questa classe?
lei utilizza internamente la connection, posso gestirla in altro modo?

Wamba Profilo | Expert

Ciao,
una connessine al Database non è serializzabile (anche perchè sarebbe abbstanza pericoloso).

Ecco quello che farei:

[nonserialized()]
private SqlConnection _Myconnection = null

public SqlConnection Myconnection
{
get{
if(_Myconnection == null){
//init connection
}
return _Myconnection;
}
}

In questo modo ottieni che la connessione non venga serializzata, ma sia comunque sempre disponibile ed inizializata solo al primo uso.

PS: Codice scritto a braccio sicuramente contiene errori
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

Amodio Profilo | Expert

si perfetto funziona
ma come mai mi fa impostare notserializable la variabile membro e non la property?

Wamba Profilo | Expert

La property non contiene un valore, ma è come se fosse una "funzione": il serializzatore non la prende in considerazione.
L'attributo invece contiene un valore che deve essere serializzato salvo diversamente specificato (nonserialized)
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5