Witam
Mam problem z serializacją poniższej klasy Settings (serializuje się wszystko oprócz obiektu klasy VoipAccounts opisanej poniżej). Czy możliwe jest serilizowanie obiektu zawierającego DataSet tak jak próbuję to robić poniżej?
[Serializable]
public class Settings
{
string resellerLogin;
string destinationDirectory;
VoipAccounts voipAccountsData;
private static Settings instance;
public string ResellerLogin
{
get { return resellerLogin; }
set { resellerLogin = value; }
}
public string DestinationDirectory
{
get { return destinationDirectory; }
set { destinationDirectory = value; }
}
public VoipAccounts VoipAccountsData
{
get { return voipAccountsData; }
set { voipAccountsData = value; }
}
public static Settings Load()
{
Settings settings;
FileStream stream = new FileStream("settings.xml", FileMode.Open);
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
settings = (Settings)serializer.Deserialize(stream);
stream.Close();
instance = settings;
return settings;
}
public void Save()
{
FileStream stream = new FileStream("settings.xml", FileMode.Create);
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
serializer.Serialize(stream, this);
stream.Close();
}
public static Settings Instance
{
get
{
if (instance != null)
return instance;
else
{
Load();
return instance;
}
}
}
}
public class VoipAccounts
{
private DataTable voipAccountsTable;
private DataSet voipAccountsDataSet;
// Properties
public DataSet VoipAccountsProperty
{
get { return voipAccountsDataSet; }
}
// Constructor
public VoipAccounts()
{
// Create Tables
voipAccountsTable = new DataTable("VoipAccountsTable");
voipAccountsTable.Columns.Add("VoipLogin");
voipAccountsTable.Columns.Add("VoipPassword");
voipAccountsTable.Columns.Add("TelephoneNumber");
voipAccountsTable.Columns.Add("SubscriberName");
// Create a DataSet and add tables
voipAccountsDataSet = new DataSet("VoipAccountsTableDataset");
voipAccountsDataSet.Tables.Add(voipAccountsTable);
}
// Flush DataSet data
public void ClearData()
{
voipAccountsDataSet.Clear();
}
// Add row to the DataTable
public void AddAccount(string voiplogin, string voipPassword, string telephoneNumber, string subscribernumber)
{
voipAccountsTable.Rows.Add(voiplogin, voipPassword, telephoneNumber, subscribernumber);
voipAccountsDataSet.Tables["VoipAccountsTable"].AcceptChanges();
}
}