我有一個方法讀取文件並根據此文件的信息填充模型列表。 Currenly我讀的文件包含serverData我填充到serverModel列表與此代碼:如何根據類型填充泛型類的列表?
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;
}
現在我有一個包含MAILDATA我想填充MAILDATA的列表,並返回一個新的文件。
我修改了代碼,使用泛型類,像這樣:我無法弄清楚如何填充MAILDATA列表時,我需要和如何填充serverdata列表
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;
}
現在,當我需要。
我在代碼中添加了這個檢查:
if(typeof(T) == typeof(ServerModel))
並試圖將數據添加到模型:
models.Add(new ServerModel {
DomainName = info[1],
ServerUrl = info[3],
StatisticUrl = info[5] });
,但我得到
無法從serverModel轉換爲T
這是如何完成的?
旁註:'趕上(例外五){拋出; }'是*多餘*,這就是爲什麼*無用*。 –
throw被註釋掉,解析錯誤時添加代碼,謝謝 – ThunD3eR