Ich habe eine Methode, die eine Datei liest und eine Liste eines Modells basierend auf den Informationen dieser Datei auffüllt. Currenly die Datei Ich lese enthält Serverdaten, die ich auf eine Liste von serverModel bevölkern mit diesem Code:Wie wird eine Liste einer generischen Klasse basierend auf dem Typ aufgefüllt?
public static List<ServerModel> GetServerModels()
{
List<ServerModel> models = new List<ServerModel>();
try
{
var reader = new StreamReader(Helper.GetPath("Domains.ini"), Encoding.Default);
while (!reader.EndOfStream)
{
try
{
var line = reader.ReadLine();
string[] info = line.Split(';');
//if(info.Count > 1)
models.Add(new ServerModel {
DomainName = info[1],
ServerUrl = info[3],
StatisticUrl = info[5] });
}
catch (Exception e)
{
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
return models;
}
Jetzt habe ich eine neue Datei, die Maildata enthält, die ich eine Liste von maildata auffüllen möchten und es zurück.
modifizierte ich den Code wie so generische Klassen zu verwenden:
public List<T> GetModeldata<T>(string path)
{
List<T> models = new List<T>();
try
{
var reader = new StreamReader(path, Encoding.Default);
while (!reader.EndOfStream)
{
try
{
var line = reader.ReadLine();
string[] info = line.Split(';');
if(typeof(T) == typeof(ServerModel))
models.Add(new ServerModel {
DomainName = info[1],
ServerUrl = info[3],
StatisticUrl = info[5] });
}
catch (Exception e)
{
throw;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
return models;
}
jetzt nicht herausfinden, ich kann, wie eine Liste von maildata zu füllen, wenn ich, dass und wie muß eine Liste von Serverdaten zu füllen, wenn ich brauche das.
Ich habe diese Überprüfung im Code:
if(typeof(T) == typeof(ServerModel))
und versuchte, Daten zum Modell hinzuzufügen:
models.Add(new ServerModel {
DomainName = info[1],
ServerUrl = info[3],
StatisticUrl = info[5] });
Aber ich
von serverModel konvertieren kann nicht zu bekommen T
Wie wird das gemacht?
Randbemerkung: 'catch (Exception e) {throw; } 'ist * redundant * und deshalb * nutzlos *. –
throw ist auskommentiert, Parsing Fehler, wenn Code hinzugefügt wurde, danke – ThunD3eR