C#如何使用ILGenerator实现动态生成函数的实例


当前第2页 返回上一页

然后这种代码写起来很烦, 我不是很想写. 这是本文产生的原因.

C#里面有XML反序列化, 我定义一个类:


1

2

3

4

5

6

7

class Config1 {

 int32 param1;

 string param2;

 int[] param3;

}

XmlSerializer serializer = new XmlSerializer(typeof(Config1));

var obj = (Config1)serializer.Deserialize(stream);

这个反序列化就非常简单, 我其实要的就是这个东西, 只是Xml反序列化用的是Node, 而我想用属性, 另外一个就是属性的值我有一些自己个性化的东西在里面.

感谢微软提供了调试.NET Framework的功能, 让我可以调试.NET源码, 看看微软是怎么实现的.

研究了一番发现, 他居然是在XmlSerializer构造的时候, 把Config1分析了一遍, 然后生成的一些元数据, 和Read/Write方法, Deserialize只是调用了一下Read方法而已.

既然知道他是怎么实现的, 想必你研究一会儿, 也就能撸出来一个.

基本上你得先撸出来一个原型, 然后再把原型程序化.

PS: 暂时还没有测试性能, 应该不会太差, 最差就是服务器启动的是慢几秒.

XmlSerializationReaderILGen.cs

总结

以上就是C#如何使用ILGenerator实现动态生成函数的实例的详细内容!

返回前面的内容

相关阅读 >>

使用c#操作windowad之的windows用户组

.net页面局部更新引发的思考

c#中匿名对象与var以及动态类型 dynamic的详解

在.net项目中使用postsharp

c# 中guid生成格式有哪些方法

c#中使用反射以及特性简化的实例代码

.net mvc 使用ueditor上传图片

c#通过kd树进行距离最近点的查找的实例分析

关于.net使用cache框架如何给程序添加cache的实例

浅谈.net core开发日志中edge.js是什么?如何用?

更多相关阅读请进入《ILGenerator》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...