5

是否可以使用OrchardCMS执行属性注入?如何使Autofac在Orchard CMS中执行属性注入CMS

我知道Orchard使用Autofac并且Autofac确实执行属性注入,但我需要知道如何为IOrchardServices接口执行属性注入。

我们的团队正在关注Orchard,但我们的代码库全部位于ASP.NET 4.0 WebForms中,因此我们将继续提供aspx页面,并在时间允许的情况下将这些页面缓慢迁移到Orchard。

因此,我们需要一种方法来访问OrchardServices对象。我在想,这是我必须自己提出的事情。 有没有人有任何在乌节路上进行房产注入的好例子?

回答

3

这很简单 - 查看源代码如何完成​​接口,并为IOrchardServices执行相同操作。源文件是Orchard.Framework/Logging/LoggingModule.cs。这正是你在找的东西,我猜。
一切都通过Autofac模块完成(实施Autofac.Module类)。什么是类所做的是:

  • 注册的​​接口(Load法)和
  • 实施得到处理的对象的属性,并设置适当的一些反对从容器(AttachToComponentRegistration法)解决。

很简单。 Autofac模块是插入DI过程的好方法。

只要将该源文件复制到您的自定义果园模块并将​​更改为IOrchardServices(当然还有注册类)就足够了。我提到的类使用工厂模式来创建实例,但是您可以通过新的将其更改为简单的对象创建,并摆脱与工厂有关的事情。

+0

非常好!感谢您指出LoggingModule作为例子,给出了我需要的具体示例:D – defines