Serializacja stosu

0

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

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ę :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1