问题标签 [rapier-loom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 结合依赖注入和动态方面编织
对于 DI,我使用的是 Microsoft 的 Unity。对于动态 Aspect Weaving,我使用的是 Rapier-LOOM。
方面编织器要求我使用工厂方法实例化编织对象Weaver.CreateInstance(System.Type)
,并且不提供交织现有实例的方法。
DI 容器允许我通过使用IUnityContainer.Resolve(System.Type)
方法解决依赖关系,该方法解决依赖关系并实例化注入类型的对象。
这两种方法显然是冲突的。 解决此冲突的推荐方法是什么?
到目前为止我的想法:
- 查询映射并“手动解析”依赖项(使用
IUnityContainer.Registrations
属性)。创建一个组合的“DI+AOP”机制——给定一个要解析的类型——找到目标映射类型,然后使用 Weaver 实例化。 - 创建我自己的
IUnityContainer
接口实现,它使用 Weaver(而不是 Activator)进行实例化
附言
如果我在这里偏离轨道并且可以避免而不是解决冲突 - 请告诉我。
c# - 方面类代码不能与剑杆织机中的目标类代码交织
我使用 C# Visual Studio 2008.net 编写了方面类和目标类,但每次我运行应用程序以交织它们时,只执行目标类但我无法执行方面类我试图附加对剑杆织机的引用并试图卸载剑杆织机并重新安装,但出现同样的问题....问题是什么?
这是方面类:
这是应用程序方法:
目标类是:
c# - 将 DIY 依赖注入与面向方面编程相结合
对于即将到来的项目,我计划同时使用依赖注入和面向方面的编程。我将自己实现前者,遵循DIY 依赖注入指南并使用LOOM.Net作为 AOP 部分。
创建逻辑类和方面类的交织类型的常见模式是
我的直觉是在胶水代码中执行交织,例如对于实现的类ConcreteLogicA
,ILogicA
这取决于ILogicB
实现ConcreteLogicB
这是一个可行的解决方案,还是偏离轨道。优点是,我不必将我的逻辑与我的方面混合在一起(诚然,这是 AOP 的线索),但这样我在胶水代码中添加了更多逻辑。