在.NET平台怎么使用ReflectionDynamicObject优化反射


本文小编为大家详细介绍“在.NET平台怎么使用ReflectionDynamicObject优化反射”,内容详细,步骤清晰,细节处理妥当,希望这篇“在.NET平台怎么使用ReflectionDynamicObject优化反射”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基于封装的原则,API 的设计者会将部分成员(属性、字段、方法等)隐藏以保证健壮性。但总有需要直接访问这些私有成员的情况。为了访问一个类型的私有成员,除了更改 API 设计还有就是使用反射技术:这种写法并不优雅:代码冗长,编写麻烦。实现比较绕,不太直观。笔者基于“动态类型技术”探索出了一种相对来说比较优雅的方案用于美化上述代码,并为其命名为 Reflect免费云主机域名ionDynamicObject :除了支持获取值,ReflectionDynamicObject 还支持赋值:除了字段,当然也支持对属性的操作:在对属性的支持上,ReflectionDynamicObject 使用了“快速反射”技术,将取值和复制操作生成了委托以优化性能。ReflectionDynamicObject 派生自 DynamicObject ,其内部通过反射技术获取到所有的属性和字段并对其 getter 和 setter 方法进行存储并通过 TryGetMember 和 TrySetMember 方法经运行时调用。基于复杂度的考虑,ReflectionDynamicObject 并未添加对“方法”的支持。这也就意味着对方法的调用是缺失的。虽然动态行为让程序摆脱了对字符串的依赖,但是该实现对“重构”的支持仍然不友好。Liquid 主题引擎 是笔者根据 Liquid 语言和 Shopify 主题机制并采用 Fluid 模板引擎实现的一套 HTML 主题引擎。该引擎允许最终用户自由的修改自己的主题模板而不会对宿主造成影响。最终目标是做到多语言、多主题、高扩展性以及所见即所得。读到这里,这篇“在.NET平台怎么使用ReflectionDynamicObject优化反射”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: javascript中内置对象Math怎么使用

本文小编为大家详细介绍“javascript中内置对象Math怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript中内置对象Math怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Math 对象不是构造…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/10 17:00
下一篇 01/10 17:00

相关推荐