1

さて、かみそりタイプのプロパティポインタを指定して、不明なデータクラスからデータを読み取ることができるジェネリックメソッドが必要です。

IEテンプレートとオブジェクトを含む文字列を渡して、テンプレート内の文字列を指定してオブジェクトからデータを抽出できるようにしたい。

String template = "@Model.Basket";
var results = parse(template, data);

解析メソッドは、渡される特定のモデルを認識していない必要があるため、そのメソッドシグネチャは次のようになります。

public var parse(String template, object model)

ここで、データは次のようなものです

public class Receipt
{
    public String Firstname { get; set; }
    public String Surname { get; set; }
    public DateTime TransactionDateTime { get; set; }
    public Boolean ReturnCustomer { get; set; }
    public LineItem[] Basket { get; set; }


    public class LineItem
    {
        public Product product { get; set; }
        public int Units { get; set; }

        public class Product
        {
            public int ProductId { get; set; }
            public String ProductName { get; set; }
            public double Cost { get; set; }
        }
    }
}

この場合、parseはラインアイテムの配列を返す必要がありますが、テンプレートが「@ Model.Firstname」と等しい場合は、そのプロパティに格納されている名前を含む文字列を返すだけです。

誰か良いアイデアはありますか?

この特定のソリューションでは、テンプレートがRazorエンジンが理解できる形式ではないため、Razorエンジンを使用できないことに注意してください。

4

1 に答える 1

0

これを実行する場合は、System.Reflection名前空間、特にPropertyInfoを確認する必要があります。しかし、それが良い考えかどうかはわかりません。

于 2012-06-19T09:12:36.023 に答える