我有一个方法读取文件并根据此文件的信息填充模型列表。 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