【问题标题】:c# load/save objects or object arrayc# 加载/保存对象或对象数组
【发布时间】:2016-02-21 19:47:56
【问题描述】:

我认为这是我使用的代码,但无法加载它就无法分辨, 基本上 imagebook 是一个存储“imagedata 对象数组”的对象,其中包含用于我的加载保存的图像和整数。 但在加载子中的其中一行出现“类型”错误问题。

如果有办法保存整个 imagedata 数组并删除 imagebook 也可以。

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
        }
    }
}

【问题讨论】:

  • "但在加载子中的其中一行出现“类型”错误问题。" -- 关心分享什么线路?
  • this.book1 = (Dictionary) 你会看到指向末尾的箭头

标签: c# arrays object save load


【解决方案1】:

book1 变量似乎是 ImageBook1(不确定;您没有与我们分享它的声明),因此您无法为其分配字典。

你序列化的任何类型也应该是被反序列化的类型,所以你可能想将它转换回ImageBook1

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

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

【讨论】:

  • 效果很好,谢谢!!也很高兴,因为 iv 从未使用过字典 b4!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多