好的,所以我希望有一个泛型方法,可以在给定剃刀类型属性指针的情况下从未知数据类中读取数据。
即。我希望能够传入包含模板和对象的字符串,然后从给定模板中字符串的对象中提取数据。
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引擎,因为我的模板不是剃刀引擎可以理解的格式。
答案 0 :(得分:0)
如果要执行此操作,您需要查看System.Reflection
命名空间 - 特别是PropertyInfo。不过,我不确定是是个好主意。