从未知数据模型中获取数据

时间:2012-06-19 08:43:39

标签: c# templates

好的,所以我希望有一个泛型方法,可以在给定剃刀类型属性指针的情况下从未知数据类中读取数据。

即。我希望能够传入包含模板和对象的字符串,然后从给定模板中字符串的对象中提取数据。

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

parse方法应该不知道传递给它的特定模型,因此它的方法签名应该是这样的:

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引擎,因为我的模板不是剃刀引擎可以理解的格式。

1 个答案:

答案 0 :(得分:0)

如果要执行此操作,您需要查看System.Reflection命名空间 - 特别是PropertyInfo。不过,我不确定是个好主意。