greetngs,
У меня есть два класса:
[Serializable]
public class FireGridUnit
{
public GridUnit FireGridLocation { get; set; }
}
[Serializable]
public class FireResult: FireGridUnit
{
public bool Hit { get; set; }
public bool ShipDestroyed { get; set; }
public Ship.ValidShips DestroyedShipType {get; set;}
public bool Win { get; set; }
}
как видите, FireResult наследует FireGrdUnit.
в моем коде, когда я пытаюсь использовать их, я получаю ошибку времени выполнения:
Невозможно привести объект типа NietzscheBattleships.FireGridUnit к типу NietzscheBattleships.FireResult.
это потому, что если я сериализую, класс должен быть независимым, то есть не наследоваться?
большое спасибо.
EDIT:
это происходит здесь:
XmlSerializer ss;
StringWriter ww;
ss = new XmlSerializer(typeof(FireResult));
ww = new StringWriter();
ss.Serialize(ww, fireGridUnit);
MessageBox.Show("hello");
MessageBox.Show(ww.ToString());
выдает указанную ошибку. если я возьму это, то он запустится, но, очевидно, не будет делать то, что хочет.
РЕДАКТИРОВАТЬ: я понял, моя ошибка!
ss.Serialize(ww, fireGridUnit); should be ss.Serialize(ww, fireResult);
спасибо.