[C#] Вопрос из теста_2
От: XJess  
Дата: 03.10.10 15:41
Оценка:
Еще один вопрос из теста.

Что произойдет при 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?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.