Еще один вопрос из теста.
Что произойдет при Binary сериализации объекта widget?
public interface IWidget
{
int Index
{ get;
set;
}
}
[Serializable]
public class Widget : IWidget
{
private int index;
public int Index
{ get { return index; }
set { index = value; }
}
}
// Метод Main()
IWidget widget = new Widget();
widget.Index = 10;
using (FileStream writer = new FileStream("data.dat", FileMode.Truncate))
{
BinaryFormatter serializer = new BinaryFormatter ();
serializer.Serialize(writer, widget);
}
1. Ошибка времени компиляции: для сериализации нужно использовать не StreamWriter, а только BinaryWriter
2. Ошибка времени исполнения: интерфейс IWidget должен быть помечен атрибутом Serializable
3. Ошибка времени исполнения: класс Widget должен быть помечен атрибутом BinarySerializable, а не Serializable
4. Будет вызвано исключение NotSupportedException с сообщением, что нельзя сериализовать интерфейс Iwidget
5. Объект widget будет успешно сериализован
Опять какая-то фигня — если на диске файла нет, то вылетает "Unhandled Exception: System.IO.FileNotFoundException: Could not find file
bin\Debug\data.dat'"... А в вопросе про существование ничего не сказано...
А если файл есть на диске, то вроде что-то пишется туда.. Вообщем, я так понимаю, верный вариант 5?