Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨
生活随笔
收集整理的這篇文章主要介紹了
Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
更新內容
現在,你可以通過上下文修改屬性的值了:
//???from?0.2 //?可以修改屬性 o.V().ForEach((context)?=>?ModifyData(context)).Run();public?static?void?ModifyData(IObjectVisitorContext<Yueluo,string>?context) {context.Value?=?context.Value.SubString(0,1); }現在,支持多次 ForEach 操作:
//????from?0.2 //?多重?foreach o.V().ForEach((context)=>{}).ForEach((context)=>{}).Run();現在,支持更多花里胡哨的屬性條件判斷:
//???from?0.2 //?遍歷指定類型的屬性 o.V().ForEach<Yueluo,?string>((context)?=>?{}); //?和上一條完全一樣 o.V().ForEach<Yueluo,?string>((context)?=>?{},?x?=>?x.PropertyType?==?typeof(string)); //?遍歷被標記了?RequiredAttribute?的?string?屬性 o.V().ForEach<Yueluo,?string>((context)?=>?{},?x?=>?x.PropertyType?==?typeof(string)?&&?x.GetCustomAttribute<RequiredAttribute>()); //?遍歷“是”或者實現了 IEnumerable<int>?接口的屬性, 例如 List<int>, int[], IEnumerable<int>, HashSet<int>?等等。 o.V().ForEach<Yueluo,?IEnumerable<int>>((context)?=>?{},?x?=>?x.IsOrImplOf<IEnumerable<int>>()); //?指定屬性類型,并包含一個擴展的參數 o.V().WithExtendObject<Yueluo,?StringBuilder>().ForEach<Yueluo,?StringBuilder,?string>((context)?=>?{});基準測試
我們更新了兩個基準測試:
FormatString 實現進行了優化,現在 Quick Style 和自己手寫 ObjectVisitor 已經幾乎沒有區別。
使用 ObjectVisitor 來修改屬性值的代價約為 1-5 微秒(千分之一毫秒)。
詳細的數據可以查看項目首頁,此處僅給出圖表說明。
FormatStringMOdifyData場景樣例
我們增加了一些可以使用該庫實現功能的場景和做法說明:
將數據庫鏈接字符串轉型為數據模型,或者將數據模型格式化為鏈接字符串。
將對象中滿足手機號碼格式的字段替換為密文,避免敏感信息輸出。
將實現了 IEnumerable<int> 的所有屬性求和。
總結
以上是生活随笔為你收集整理的Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻找性能更优秀的动态 Getter 和
- 下一篇: EntityFramework Core