Ваш XmlSerializer
создается с typeof(string)
в качестве аргумента для конструктора.Это означает, что этот сериализатор предназначен для преобразования XML в System.String
.Если вы хотите, чтобы он преобразовал ваш XML в тип Shape
и обратно, то инициализируйте его, используя вместо этого:
public void Deseriaize(StreamReader file)
{
XmlSerializer ser = new XmlSerializer(typeof(Shape));
Shape s = (Shape)ser.Deserialize(file);
file.Close();
MessageBox.Show(s.title);
}
Обратите внимание, что цикл сериализации / десериализации, вероятно, потерпит неудачу или будет работать неправильно, если вы попытаетесьдесериализовать XML, который не был создан с XmlSerializer
или если ваш класс Shape
неправильно реализует ISerializable
.