Der Versuch, .dat-Datei auf seine eigene KlasseGussobjekt Klasse C#
level0 = (Level0) LoadObjInBinary(level0, "Level" + levelNumber);
public static object LoadObjInBinary(object myClass, string fileName) {
fileName += ".dat";
if (File.Exists(FileLocation + fileName)) {
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(FileLocation + fileName, FileMode.Open);
myClass = bf.Deserialize(file);
file.Close();
return myClass;
} else {
return null;
}
}
Level() class
[Serializable]
public class Level0 { //Using this class to create Level.dat binary file
static int level = 1;
static int moves = 15;
static int seconds;
static int minScoreForOneStar = 1000;
static int minScoreForTwoStars = 1500;
static int minScoreForThreeStars = 2000;
static TargetObj[] targetObjs = {new TargetObj(Targets.Black, 10), new TargetObj(Targets.Freezer, 1), new TargetObj(Targets.Anchor, 2)};
static Color[] colors = {Constants.grey, Constants.green, Constants.pink, Constants.brown, Constants.purple, Constants.lightBlue};
static Cell[,] levelDesign;
//the rest is Properties of Fields
}
Problem zu werfen: Rückkehr LoadObjInBinary null. Der Dateipfad ist richtig und Klasse auch paßt, aber nicht wissen, warum „(Level0) Objekt“ nicht funktioniert ...
Dank
Sie auch die BinaryFormatter verwendet, um eine 'Level0' Typ zu serialisiert? Nur für die Wissenschaft: Kann man 'return null;' durch 'return new Level0();' ersetzen. Ich möchte überprüfen, ob der Pfad korrekt ist oder nicht. – rene
nichts geändert, die Datei existiert und es gibt zurückliegendes Objekt aber kann es nicht auf Level0() werfen Und ja, ich habe BinaryFormatter zu serialisieren – MJahongir
Können Sie zusätzliche Informationen für die Klasse Level0 bereitstellen. Ist es als serialisierbar gekennzeichnet? Enthält es zusätzliche Member, die ebenfalls einen benutzerdefinierten Typ aufweisen? – Vect0rZ