J'utilise SQLite.cs wrapper pour m'aider avec la base de données et j'ai cette méthode pour créer XML à partir d'une table, qui fonctionne très bien.C# - Type de classe en tant que paramètre dans les méthodes
public void GenerateInvoiceXML(string filePath) {
var invoices = app.db.Table<Invoice>().ToList();
XmlSerializer serializer = new XmlSerializer(typeof(List<Invoice>));
TextWriter writer = new StreamWriter(filePath);
serializer.Serialize(writer,invoices);
writer.Close();
}
Toutes les tables que je sont définis comme ceci:
[Serializable]
public class Invoice
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Supplier {get; set;}
public string Date {get; set;}
public string PaymentMethod {get; set;}
public string Notes {get; set;}
public Invoice(int newID)
{
Id = newID;
}
public Invoice()
{
}
}
Mais je veux changer cette méthode pour quelque chose comme ceci:
public void GenerateInvoiceXML(string filePath, Type table) {
var dataForXML = app.db.Table<table>().ToList();
XmlSerializer serializer = new XmlSerializer(typeof(List<table>));
TextWriter writer = new StreamWriter(filePath);
serializer.Serialize(writer,dataForXML);
writer.Close();
}
Est-ce que quelqu'un a une idée de comment fais le?
Cordialement,
Claudio
+1: Si app.db.Table a des contraintes (ce qui est probable), vous aurez également besoin d'ajouter ces contraintes à cette méthode. –
@Reed: Bon point :) –
merci beaucoup. Connaissez-vous un site/référence à ce sujet que je pourrais lire quelque chose de plus? J'ai beaucoup de problèmes avec ça et je ne sais même pas comment le chercher. – Claudio