在C#中序列化表单及其所有数据

时间:2012-12-14 00:23:20

标签: c# serialization savestate

我猜测最好的方法是使用XML。这是问题所以:

    Hero hero;
    PictureBox heroPB;
    Dictionary <string,Point> pokedex;
    Boss boss;
    PictureBox bossPB;
    Attack attack;
    PictureBox attackPB;
    HPMeter bossHP;
    PictureBox bossHPPB;
    PPMeter heroPP;
    PictureBox heroPPPB;

    System.Timers.Timer animateAttack;
    System.Timers.Timer animateBoss;
    System.Timers.Timer checkHit;
    System.Timers.Timer winFade;
    Thread tr;
    Rectangle bossRect;
    Rectangle attackRect;
    Panel whiteout;

    int heroState = 2;
    int stepRate = 5;
    int attackDirection;
    int attackLoop = 0;
    int contadorPaso = 0;
    int contadorPasoBoss = 0;
    int bossTop, bossLeft;
    int bossState = 6;
    int bossHealth = 0;
    int bossHPCap = 0;
    int opa = 0;
    int battlesWon = 0;
    int mainBossCounter = 0;
    int ppleft = 0;
    bool paso = false;
    bool inStadium = false;
    bool fading = true;
    bool fightingMainBoss = false;
    bool fainted;
    string currentPokemon = "";

    Rectangle[] frames;
    Rectangle[] entrances;
    PictureBox[] boundaries;
    Random r;
    Random eth;

    public delegate void BeginFade();
    BeginFade fade;

我有不止一些不断变化的对象/原语。有没有一种有效的方法来序列化整个程序并在下次程序运行时加载它?

1 个答案:

答案 0 :(得分:1)

实际上没有简单的方法来保存这些数据。我个人认为XML不是最佳途径。这对物体会很好,对其他一切都很糟糕。我更倾向于把它写成带有“misc”对象的JSON,它具有所有单独的原语。我实际上最倾向于创建自己的配置文件读取器/写入器并编写更像csv的东西。我工作地点的大多数配置文件至少包含那么多数据。我们对所有基元使用key=value。每个对象都有自己的部分,其基元以key=value格式列出,列表为key=value1,value2,value3。我个人认为这是一种相当简单的做事方式,编写读写器类并不需要很长时间。实际上,从头开始创建一个简单的读/写器可能比在JSON或XML序列化类之上构建一个更快。我真的没有看到这些格式对你有什么好处。