1

オブジェクトのリストで構成されるファイルを保存して開こうとしています。今の私の問題は、保存したファイルを開いても何も起こらないことです。プログラムはdragToイベントを使用することになっています。そのイベントを使用すると、ドラッグされたオブジェクトがリスト「ojl」に保存されます。これが、保存して開くためのメソッドです。

    DragTo dragto1 = new DragTo();
    OpenFileDialog openDialog = new OpenFileDialog();
    SaveFileDialog saveDialog = new SaveFileDialog();
    BinaryFormatter form = new BinaryFormatter();

 public void Save()  // Method to save list of objects (Save)
    {
        saveDialog.Filter = "dat files (*.dat)|*.dat|All files (*.*)|*.*";
        if (saveDialog.ShowDialog() == DialogResult.OK)
        {
            FileStream outStr = new FileStream(saveDialog.FileName, FileMode.Create);  //Create new FileStream
            form.Serialize(outStr, dragto1.Ojl);
            outStr.Close();
        }
    }

    public void Open()  // Method for open saved list of objects (Load/Open)
    {
        openDialog.Filter = "dat files (*.dat)|*.dat|All files (*.*)|*.*";
        if (openDialog.ShowDialog() == DialogResult.OK)
        {
            FileStream inStr = new FileStream(openDialog.FileName, FileMode.Open);  //Create new FileStream
            dragto1.Ojl = (List<DrawnObject>)form.Deserialize(inStr);
            inStr.Close();
        }

リストは別のクラスにあります(DragTo)

    private List<DrawnObject> ojl = new List<DrawnObject>();
    public List<DrawnObject> Ojl
    {
        get { return ojl; }
        set { ojl = value; }
    }

また、オブジェクトが内部にあるコントローラーを更新します。しかし、リストにはopenメソッドからの新しい値が含まれていません。ファイルの形式はそれと関係がありますか(.dat)?

4

0 に答える 0