関数があるとします:
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;
}