Я слежу за this tutorial в сети точно, но как-то это дает мне ошибки. Говорить, что нет карты объектов или чего-то еще.C#, не может сериализоваться в двоичном формате
У меня есть следующие статический объект, который я хочу сериализации:
[Serializable]
public class Settings : ISerializable
{
public static string server= "http://localhost/";
public static string username = "myname";
public static bool savePassword = true;
public static bool autoSync = true;
public static string password = "mypass";
public static string folderPath1= "c:/";
public static string folderPath2= "c:/";
public static string autoSyncDuration = "300";
public static string lastSyncTime = "???";
public Settings()
{ }
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
Type myTypeObj = Type.GetType("Settings");
foreach (FieldInfo p in myTypeObj.GetFields())
{
Object value = p.GetValue(null);
info.AddValue(p.Name, value, p.GetType());
}
}
public Settings(SerializationInfo info, StreamingContext context)
{
Type myTypeObj = Type.GetType("Settings");
FieldInfo p;
foreach (SerializationEntry e in info)
{
p = myTypeObj.GetField(e.Name);
p.SetValue(null, e.Value);
}
}
}
А вот для чтения/записи функции:
private void writeSettings()
{
pcb_savingSettings.Visible = true;
FileStream fileStream = new FileStream(settingFile, FileMode.Create, FileAccess.Write, FileShare.None);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fileStream, new Settings());
fileStream.Close();
pcb_savingSettings.Visible = false;
}
private void readSettings()
{
if (!File.Exists(settingFile))
{
writeSettings();
}
FileStream fileStream = new FileStream(settingFile, FileMode.Open, FileAccess.Read, FileShare.None);
BinaryFormatter bf = new BinaryFormatter();
bf.Deserialize(fileStream);
fileStream.Close();
}
АКТУАЛЬНО ERROR MSG: Нет карты для объекта '822476800' , Это происходит в этой строке:
bf.Deserialize(fileStream);
Вы можете скопировать точное сообщение об ошибке? –
"учебник". Какой учебник? Ссылка пожалуйста. – Oded
@ Одиночный учебник, доступный в Интернете, очевидно. – CodesInChaos