2011-02-03 15 views
0

私はWPF-mvvmアプリケーションを持っています。ExcelファイルからDtoのリストを作成する一般的な関数を書くには?

私はExcelファイルを読み、Dto(データ転送オブジェクト)のリストを作成する必要があります。

EX:のDTOの2種類がある 以下の場合 クラスA {//ここではいくつかの特性}クラスB {//ここでいくつかの他の特性}ランタイムで

は、私はExcelへの参照を渡しますファイル...どの窓からこの関数を呼び出すかによって、その特定のDTOのリストが必要です(つまり、リスト(A)またはリスト(B)を意味します)。

下記のような機能を使用できますか? しかし、実行時に各クラスのプロパティは何か分かりますか?

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

にClassAとClassBのは、両方とも同じインターフェイスを実装し、またはその両方が同じスーパークラスから降りた場合にあなたの提案のアプローチのみ動作します。そのような場合は、次のようにすることができます。

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; 
     } 
} 
関連する問題