是否可以使用 OrchardCMS 进行属性注入(inject)?
我知道 Orchard 使用 Autofac 并且 Autofac 确实进行了属性注入(inject),但我需要知道如何为 IOrchardServices 接口(interface)进行属性注入(inject)。
我们的团队正在研究 Orchard,但我们的代码库都在 ASP.NET 4.0 WebForms 中,因此我们将继续提供 aspx 页面,并在时间允许的情况下将这些页面缓慢迁移到 Orchard。
有了这个,我们需要一种方法来访问 OrchardServices 对象。我在想这是我必须自己提出来的事情。 有没有人有任何在 Orchard 执行属性注入(inject)的好例子?
最佳答案
这很简单 - 查看源代码是如何使用 ILogger
完成的接口(interface)并对 IOrchardServices
执行相同操作.源文件是 Orchard.Framework/Logging/LoggingModule.cs .我猜这正是你要找的东西。
一切都通过 Autofac 模块完成(Autofac.Module
类的实现)。该类(class)的作用是:
ILogger
的实现接口(interface)(Load
方法)和 AttachToComponentRegistration
方法)。 很简单。 Autofac 模块是插入 DI 过程的好方法。
只需将该源文件复制到您的自定义 Orchard 模块并更改
ILogger
就足够了至IOrchardServices
(当然还有注册类(class))。我提到的类使用工厂模式来创建实例,但是您可以通过 将其更改为简单的对象创建新 并摆脱与工厂有关的东西。
关于asp.net - 如何让 Autofac 在 Orchard CMS 中执行属性注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6749997/