Newbe.ObjectVisitor 帮助开发者可以用最简单的最高效的方式访问一个普通 class 的所有属性。从而实现:验证、映射、收集等等操作。
例如, 在你的代码中有这样一个简单的类。
var order = new OrderInfo();
你想要将这个类所有的属性和值都打印出来,那么你可以采用反射来完成:
for(var pInfo in typeof(OrderInfo).GetProperties())
{
Console.Writeline($"{pInfo.Name}: {pInfo.GetValue(order)}");
}
如果你使用这个类库,则可以采用以下方式来实现一样的效果:
// 调用扩展方法 .V
// 就可以得到一个针对 Order 类型的 visitor
var visitor = order.V();
visitor.ForEach(context=>{
var name = context.Name;
var value = context.Value;
Console.Writeline($"{name}: {value}");
}).Run();
// 也可以把代码都写在一行
order.V().ForEach(c=> Console.Writeline($"{c.Name}: {c.Value}")).Run();
// 或者也可以调用这个较短的方法
order.FormatToString();
目前我们仍然需要更多的朋友来参与到这个紧张刺激的项目中。