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#中关于dictionary的用法详解

.net framework有什么用

.net和c#有什么区别

使用 vscode 编写 .net core 项目的实例教程

.net中xml转换成treeview视图

.net实现后台登录验证

c#中关于静态与非静态方法的区别介绍

详解可选参数和命名参数实例

.net实现简易的文件增量备份程序

c#高级编程(一)-.net体系结构

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




打赏

取消

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

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

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

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

评论

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