03 2023 档案

摘要:代码编译器是将一段源代码(C#或VisualBasic)编译成程序集,它的工作方式与 Emit 不一样。从 .net standard 开始,代码编译器就采用了 Roslyn 来编译源代码,前几篇文章里提到的 SourceGenerator 也正是基于此。 阅读全文
posted @ 2023-03-13 22:55 fireasy 阅读(204) 评论(1) 推荐(2) 编辑
摘要:在运行期间,我们可以使用 Emit 来组织一段 IL 代码,进而动态生成一个方法,甚至是一个程序集(包括类型、方法或属性等等)。这个过程我们称之为动态编织。这一项技术应用比较广泛,比如数据映射(Dapper)、动态代理(AOP)等等,目的是提升大量反射而产生的性能问题。 阅读全文
posted @ 2023-03-12 18:32 fireasy 阅读(174) 评论(2) 推荐(2) 编辑
摘要:实现 AOP(面向切面编程)的实现方式有很多种,但无外乎静态纺织和动态编织两种。 阅读全文
posted @ 2023-03-05 22:33 fireasy 阅读(156) 评论(1) 推荐(1) 编辑
摘要:在 Fireasy3 揭秘 -- 依赖注入与服务发现 这篇中,我们通过遍列程序集中的所有类,来查找三个类型的服务接口,这样应用在启动时会消耗一定的时间来处理这些事情。今天,我们将用 `ISourceGenerator` 来对它进行改进。 阅读全文
posted @ 2023-03-03 00:04 fireasy 阅读(167) 评论(1) 推荐(4) 编辑
摘要:前篇已经介绍了依赖注入与服务发现,还有另外一种机制是服务部署,顾名思义就是可以在程序集中定义一个实现,在手动添加依赖注入,这一般是有选择性的注入。 阅读全文
posted @ 2023-03-02 23:11 fireasy 阅读(154) 评论(1) 推荐(3) 编辑
摘要:最近在忙于 Fireasy 的重构,`3.x` 抛弃了 `.Net Framework` 时代的一些思想和模式,紧密拥抱 `.Net Core`,但它的思想仍然是**开放性**和**灵活性**。今天我主要来说说依赖注入与服务发现。 阅读全文
posted @ 2023-03-01 23:53 fireasy 阅读(247) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示