// TestASettingsString and TestBSettingsString are byte[]
// TestASettings and TestBSettings are two objects to be saved
在SettingsSaving,TestASettings和TestBSettings序列化爲兩個不同的字節數組,然後保存(在某些其他功能)如何通過applicationsettingsbase重新加載不同的對象?
我的問題是如何在loadsavedsettings恢復TestASettings和TestBSettings從TestASettingsString和TestASettingsString seperately?
那就是當我做 formatter.Deserialize(stream);
如何分離兩個完全不同的對象來自formatter.Deserialize(stream)的TestASettings和TestBSettings?
感謝
private void SettingsSaving(object sender, CancelEventArgs e)
{
try
{
var stream = new MemoryStream();
var formatter = new BinaryFormatter();
formatter.Serialize(stream, TestASettings);
// TestASettingsString and TestBSettingsString are byte[]
TestASettingsString = stream.ToArray();
stream.Flush();
formatter.Serialize(stream, TestBSettings);
TestBSettingsString = stream.ToArray();
stream.Close();
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
private void LoadSavedSettings()
{
Reload();
// how to get TestASettings and TestBSettings from TestASettingsString and
// TestASettingsString seperately?
}
@younevertell - 您是否添加了「SetLength(0)」? – 2010-04-23 18:00:07
非常感謝,Marc。它現在有效 – user302933 2010-04-23 19:23:46
但stream.SetLength(0);不起作用。我關閉了流,並得到一個新的 – user302933 2010-04-23 19:25:07