1
7
这里有两个独立的概念:
更详细地说,您实际上不需要使用IL来实现IOC功能,但这对于避免重复反射调用的开销通常很有价值,因为反射相对昂贵。 Here 是温莎城堡正在做什么的一些信息。 为了回答你的问题,我发现最有帮助的地方是 OpCodes 班级。这是对IL中可用功能以及操作码如何工作的一个很好的总结。它本质上是一种基于堆栈的汇编语言(不需要担心寄存器),但是它是强类型的,并且具有对对象符号和概念(如类型、字段和方法)的一流访问。 Here 是一篇介绍IL基础知识的优秀代码项目文章。如果您感兴趣,我还可以向您发送一些我在过去几年中创建的用于我自己的emit代码的助手类。 |
2
5
类型化工厂是使用castle dynamicproxy库实现的。它动态生成一个实现接口的类型,并将通过接口所做的所有调用转发给拦截器。 它在代码中不施加依赖性。该接口是在您的程序集中创建的,您可以在其中不引用windsor。在另一个组件(应用程序的入口点)中,你告诉温莎这个接口,并告诉它成为一个工厂,温莎了解你的接口,并用它做一些事情。这是对其荣耀的颠覆。 其实没那么复杂:) |
3
1
ImpromptuInterface
基于接口创建DLR动态代理。它允许您使用静态接口进行动态实现。实际上,它甚至有一个基类
|
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
jkone27 · F#-在编译时从字符串生成简单的空类型 6 年前 |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
Randall Flagg · 访问propertyinfo中的属性 6 年前 |
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 6 年前 |
tobeypeters · 反射铸造 6 年前 |
myst02 · 如何在另一个方法之后调用该方法? 6 年前 |