假设我有一个功能:
public static IList GetAllItems(System.Type T)
{
XmlSerializer deSerializer = new XmlSerializer(T);
TextReader tr = new StreamReader(GetPathBasedOnType(T));
IList items = (IList) deSerializer.Deserialize(tr);
tr.Close();
return items;
}
为了检索文章列表,我想调用GetAllItems(typeof(Article))
而不是GetAllItems(typeof(List<Article>))
但仍然返回一个列表。
问题:如何在不更改函数声明/原型的情况下避免List<>
调用此函数时需要不必要的部分?
也就是说,我正在寻找这样的东西:
public static IList GetAllItems(System.Type T)
{
/* DOES NOT WORK: Note new List<T> that I want to have */
XmlSerializer deSerializer = new XmlSerializer(List<T>);
TextReader tr = new StreamReader(GetPathBasedOnType(T));
IList items = (IList) deSerializer.Deserialize(tr);
tr.Close();
return items;
}