Вот класс, который я пытаюсь сохранить
[Serializable]
[XmlRoot(ElementName = "Database", IsNullable = false, Namespace = "http://somesite.com")]
class Database
{
[XmlAttribute(AttributeName = "Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName = "Provider")]
public DatabaseProvider Provider { get; set; }
[XmlAttribute(AttributeName = "Driver")]
public string Driver { get; set; }
[XmlElement("DatabaseEntry")]
public List<DatabaseEntry> SavedEntries { get; set; }
public Database()
{
SavedEntries = new List<DatabaseEntry>();
}
public Database(string type, string provider, string driver)
{
Name = type;
Driver = driver;
Provider = DatabaseProvider.SqlClient;
Provider = SetProvider(provider);
SavedEntries = new List<DatabaseEntry>();
}
private DatabaseProvider SetProvider(string provider)
{
switch (provider)
{
case "OleDb":
return DatabaseProvider.OleDb;
case "SqlClient":
return DatabaseProvider.SqlClient;
default:
return DatabaseProvider.SqlClient;
}
}
}
[Serializable]
[XmlRoot(ElementName = "DatabaseEntry", IsNullable = false, Namespace = "http://somesite.com")]
class DatabaseEntry
{
[XmlAttribute(AttributeName = "Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName = "ConnectionString")]
public string ConnectionString { get; set; }
[XmlAttribute(AttributeName = "DsnString")]
public string DsnString { get; set; }
public DatabaseEntry()
{ }
}
База данных - родительский класс, который я пытаюсь сохранить, кто-нибудь видит что-то не так? Когда я создаю экземпляр класса и сохраняю его, ничего не сохраняется. Что дает?
EDIT! Код, который используется для сохранения:
if (Settings.Default.SqlDatabase == null)
{
Settings.Default.SqlDatabase = CreateNewDatabase();
Settings.Default.Save();
}
private Database CreateNewDatabase()
{
Database data = new Database("SQL Server", "SqlClient", "SQL Native Client");
data.SavedEntries.Add(new DatabaseEntry()
{
Name = "Default",
ConnectionString = @"Hello1",
DsnString = @"Hello2"
});
return data;
}
Я просто пытаюсь сохранить экземпляр класса Database в AppSettings