2012-11-24 70 views
1

是否可以創建通用IList方法?以下是我希望它可以實現:創建通用IList方法<T>方法

List<Entity1> lstEnt1 = _myClass.GenerateListFromXml<Entity1>(@"C\test.xml"); 
List<Entity2> lstEnt2 = _myClass.GenerateListFromXml<Entity1>(@"C\test.xml"); 

這裏就是我有這麼遠:

public List<XMLModule> RetrieveListFromXml(string appSetting, string module) 
    { 
     throw new NotImplementedException(); 
    } 

我想給XMLModule更改爲普通的一個,我可以在實體傳遞。

需要幫助這個傢伙。謝謝!

回答

4

很簡單,只需使用泛型T型然後決定內部行爲。

public List<T> RetrieveListFromXml<T>(string appSetting, string module) 
{ 
    throw new NotImplementedException(); 
} 
4
public List<T> RetrieveListFromXml<T>(string appSetting, string module) 
{ 
    throw new NotImplementedException(); 
} 
0

你可以使用這樣的事情(我忽略了你的appSetting /模塊參數,並根據在頂部使用的XML文件的路徑去)

public static List<T> RetrieveListFromXml<T>(string xmlFilePath) 
    { 
     var serializer = new XmlSerializer(typeof(List<T>)); 
     object result; 
     using (var stream = new FileStream(xmlFilePath, FileMode.Open)) 
     { 
      result = serializer.Deserialize(new FileStream(xmlFilePath, FileMode.Open)); 
     } 
     return (List<T>)result; 
    } 
+0

有趣!我會很快嘗試這個。 :) – Musikero31