Newbe.ObjectVisitor C# 类反射工具包开源项目

我要开发同款
Newbe365242020年11月01日
46阅读
开发技术C#
所属分类常用工具包、程序开发
授权协议MIT

作品详情

Newbe.ObjectVisitor帮助开发者可以用最简单的最高效的方式访问一个普通class的所有属性。从而实现:验证、映射、收集等等操作。

例如,在你的代码中有这样一个简单的类。

varorder=newOrderInfo();你想要将这个类所有的属性和值都打印出来,那么你可以采用反射来完成:

for(varpInfointypeof(OrderInfo).GetProperties()){Console.Writeline($"{pInfo.Name}:{pInfo.GetValue(order)}");}如果你使用这个类库,则可以采用以下方式来实现一样的效果:

//call.Vwhatisastaticextensionmethod//yougetavisitorobjectforordervarvisitor=order.V();visitor.ForEach(context=>{varname=context.Name;varvalue=context.Value;Console.Writeline($"{name}:{value}");}).Run();//youcanalsomakeitintoonelineorder.V().ForEach(c=>Console.Writeline($"{c.Name}:{c.Value}")).Run();//orusingquickstyleorder.FormatToString();那我为什么要这样做?因为这样更快!这个类库使用表达式树实现,因此它拥有比直接使用反射快上10倍的性能.因为这样更可读!通过这个类库你可以使用链式API和命名方法来创建一个委托,这样可以让你的代码实现和硬编码同样的可读效果。因为这样更具扩展性!如果使用了这个类库,你就拥有了一个简便的方法来访问一个类所有的属性。因此,你就做很多你想做的事情,比如:创建一个验证器来验证你的模型,修改一些可能包含敏感数据的属性从而避免输出到日志中,创建一个类似于AutoMapper的对象映射器但是拥有更好的性能,诸如此类。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论