c# – 如何使用反射创建高性能.NET类?

前端之家收集整理的这篇文章主要介绍了c# – 如何使用反射创建高性能.NET类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,所以我们都知道,反射比“新建”一个类实例的时间要少很多,在许多情况下,这根据应用程序的要求是很好的.

问题:如何使用后期绑定(反射)策略创建高性能.NET类.

我有一个现有的要求,要求使用反射(CreateInstance)创建类实例,但性能至关重要.在我的情况下,我在我们的应用程序中为每个传入的SMS消息创建实例.在生产过程中,每天可能容易超过一百万.

我想听听并分享一些关于如何创建.NET类的想法,而不直接引用代码中的类,例如使用Reflection.我也在想,如果有办法缓存一个可以提高“创作”时间的班级工厂

解决方法

每天100万不是很多;我只是使用Activator.CreateInstance(使用Activator.CreatInstance(类型)的快速测试显示在我的低廉的笔记本电脑上,它可以在〜2s中从aType创建1M对象).

快速创建对象的想法:

>使用泛型和:new()约束(零努力)
>使用DynamicMethod并写入IL(不硬)

方法的实现(不需要外部的new()约束)如下所示:ObjectFactory.cs.

有关IL的例子,请参见dapper-dot-net和il.Emit(OpCodes.Newobj,…)

猜你在找的C#相关文章