2011-02-03 45 views
0

我有一個WPF-mvvm應用程序。如何編寫一個通用函數來從excel文件創建Dto列表?

我需要讀取excel文件。並創建一個Dto(數據傳輸對象)的列表。

EX: 如果下面兩種類型的DTO的 A類{//這裏的一些性質} B類{//此處一些其它性質}

在運行時,我將參考傳遞到Excel文件...並根據從哪個窗口調用此函數,我需要該特定DTO的列表(這意味着 - >列表(A)或列表(B))。

我可以使用像下面的功能(與泛型)..? 但是我怎麼知道運行時每個類中的屬性是什麼?如果ClassA和ClassB的兩個實現了相同的接口,或者從相同的超都下降

private static IList<T> CreateLookupList<T>(string currentFileName) 
     { 
      List<T> items = new List<T>(); 

      Workbook internalWorkBook = Workbook.Load(currentFileName); 
       //Create data table for each worksheet 
       foreach (Worksheet curWorksheet in internalWorkBook.Worksheets) 
      { 
      } 

      return items; 
     } 

回答

0

你的建議的方法只會工作。如果是這種情況,你可以這樣做:

public interface IWorksheetHandler 
{ 
    void LoadFromWorksheet(Worksheet worksheet); 
} 

public class DtoLoader 
{ 
    public static IList<T> CreateLookupList<T>(string currentFileName) where T:IWorksheetHandler, new() 
    { 
      List<T> items = new List<T>(); 
      Workbook internalWorkBook = Workbook.Load(currentFileName); 
      foreach (Worksheet worksheet in internalWorkBook.Worksheets) 
      { 
       T dto = new T(); 
       dto.LoadFromWorksheet(worksheet); 
       items.Add(dto); 
      } 
      return items; 
     } 
} 
相關問題