Witam serdecznie!
Pisze do Was drodzy koledzy w sprawie, z którą mecze się już od kilku ładnych godzin(?), otóz dokonałem serializacji klasy:
[Serializable]
class UstawieniaKonfiguracyjne
{
bool chBoxStat_in;
int deviceNumber_in;
int chStart_in;
int chCount_in;
int vrgValue_in;
public UstawieniaKonfiguracyjne(bool chB_in, int dNu_in, int chS_in, int chC_in, int vVa_in)
{
this.chBoxStat_in = chB_in;
this.deviceNumber_in = dNu_in;
this.chStart_in = chS_in;
this.chCount_in = chC_in;
this.vrgValue_in = vVa_in;
}
}
W ten sposób:
private void bSerializacja_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"config.bin", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
UstawieniaKonfiguracyjne cfg = new UstawieniaKonfiguracyjne(true, 1, 1, 1, 1);
bf.Serialize(fs, cfg);
fs.Close();
}
I jest to wykonane w formie CfgForm inicjowanej przez formę główną programu.
Teraz w głównej formie chciałbym przeprowadzić deserializację, wydobyć zmienne (true,1,1,1) i przypisać je do zmiennych w strukturze w formie głownej:
public struct cfgDefaultValues //Podtawowa konfiguracja programu
{
int deviceNumber_in { get; set; }
int chStart_in { get; set; }
int chCount_in { get; set; }
int vrgValue_in { get; set; }
}
Deserializacje wykonuje w ten sposób:
private void bDeserializacja_Click(object sender, EventArgs e)
{
UstawieniaKonfiguracyjne config = null;
FileStream fs = new FileStream(@"config.bin", FileMode.Open);
try
{
BinaryFormatter bf = new BinaryFormatter();
config = (UstawieniaKonfiguracyjne)bf.Deserialize(fs);
}
catch (SerializationException s)
{
MessageBox.Show("Wystapił błąd przy wczytywaniu pliku konfiguracyjnego, szczegóły: \n /n" + s.ToString());
throw;
}
finally
{
fs.Close();
}
I z tym własnie mam problem, bo otrzymuje obiekt klasy UstawieniaKonfiguracyjne, i nie wiem co dalej z tym zrobić jak próbuje zapisać:
MessageBox.Show(config.ToString());
Żeby "podejrzeć" co on "deserializuje to wypisuje tylko:
"AnalogDigitalThreadCalc.UstawieniaKonfiguracyjne" i to wszytsko, rozumiem ze użycie messageboxa jest bez sensu ale chciałem "TYLKO" podejrzeć co wypisze, jak odwołać się do zmiennych zdeserializowanego strumienia binarnego? Czy robię coś źle, w necie sa tylko przykłady deserializacji gdzie występują tablice a tu chodzi tylko o te pięć zmiennych.
Z góry dziękuje.
Oskar