Mam pytanie czy jest w ogóle możliwa serializacja stosu? Oto fragment kodu:
[Serializable]
public class A
{
string dane;
public Stack<string> labels = new Stack<string>(); ////bez tego działa
public A( string dane)
{
this.dane=dane
}
}
Wyrzuca błąd SystemValidOperationException.
0
0
Stos daje się serializować, sprawdziłem dla pewności i u mnie działa. Może nie pokazałeś całego kodu?
0
Ok, dzięki. W sumie to jeszcze wyświetla to "Musisz zaimplementować domyślnego akcesora dla elementu X, ponieważ dziedziczy on z elementu ICollection"? Nie za bardzo wiem o co biega
0
Co to jest "element X" ?
0
Nie mam pojęcia. Ja żadnego obiektu o nazwie X nie używam
0
.net 3.5 i 4 - kompilue się i wykonuje:
class Program
{
[Serializable]
public class A
{
private string data;
public Stack<string> Labels = new Stack<string>();
public A(string data)
{
this.data = data;
}
}
static void Main(string[] args)
{
var a = new A("asdf");
Stream stream = File.Open("data.xml", FileMode.Create);
var formatter = new BinaryFormatter();
formatter.Serialize(stream, a);
stream.Close();
}
}
SoapFormatter
nie radzi sobie z wieloma typami, między innymi ze Stack<>
, ale nie widzę problemu, żeby dane zserializowane BinaryFormatter
'em zserializować ponownie SoapFormatter
'em :D
0
Można też wydziedziczyć klasę z Stack<T> i dodać serializację :)