c# load/save 对象或对象数组

c# load/save objects or object array

我认为这是我使用的代码,但如果不能加载它就无法判断, 基本上 imagebook 是一个单一的对象,它存储 "imagedata object array" 包含图像和整数用于我的加载保存。 但在负载子中的其中一行上遇到 "type" 错误的问题。

如果有一种方法可以保存整个图像数据数组并删除图像簿,那也可以。

namespace FastCrack
{
    [Serializable]
    class ImageBook1
    {
        public ImageData1[] imgdat;
        public ImageBook1(ImageData1[] dat) {
            imgdat = new ImageData1[1000];
            imgdat = dat;
        }
    }
}




namespace FastCrack
{
    public partial class Form1 : Form
    {
        private void saveCrack()
        {      
        try
        {
              book1 = new ImageBook1(imagedataSheets);
            // Create a FileStream that will write data to file.
            FileStream writerFileStream = new FileStream(Filename1, FileMode.Create, FileAccess.Write); // Save our dictionary of friends to file
            this.formatter.Serialize(writerFileStream, this.book1); 
            writerFileStream.Close();
        }
        catch (Exception) {
            Console.WriteLine("Unable to save our friends' information");
        } // end try-catch
        }


        private void loadCrack()
        {

            if (File.Exists(Filename1))
            {

                try
                {
                    // Create a FileStream will gain read access to the 
                    // data file.
                    FileStream readerFileStream = new FileStream(Filename1,
                        FileMode.Open, FileAccess.Read);
                    // Reconstruct information of our friends from file.




  //this.friendsDictionary = (Dictionary<String, Friend> 
 //<--this is line from example

this.book1 = (Dictionary<ImageBook1, book1>) 
 // (Dictionary<String, Friend>)
    <--  this is the line giving me type error




                        this.formatter.Deserialize(readerFileStream);
                    // Close the readerFileStream when we are done
                    readerFileStream.Close();

                }
                catch (Exception)
                {
                    Console.WriteLine("There seems to be a file that contains " +
                        "friends information but somehow there is a problem " +
                        "with reading it.");
                } // end try-catch

            } // end if
        }
    }
}

book1 变量似乎是一个 ImageBook1(不确定;您没有与我们分享它的声明)所以您不能为其分配字典。

无论你序列化什么类型也应该是被反序列化的类型,所以你可能想把它转换回 ImageBook1:

this.book1 = (ImageBook1)this.formatter.Deserialize(readerFileStream);

如果没有,您将不得不编辑您的答案并指明想要的词典类型。