Orchard CMS - 不使用IDependency时进行功能切换的首选方法

时间:2015-05-07 09:34:15

标签: c# .net orchardcms orchardcms-1.8

我想要切换服务实现。通过使接口继承IDependency并简单地用以下方式标记实现,这很容易做到:

[OrchardFeature("MyFeature")]
[OrchardSuppressDependency("MyService1")]

我有几个理由不能使用IDependency:

  • 我需要将一个命名服务注入我的实现
  • 拦截器需要与服务一起使用

因此,实现需要具有显式的autofac注册。要进行功能切换,我需要创建2个autofac注册模块并进行功能切换。

我的问题是:这是首选方法吗?有没有其他方法可以建议切换这些autofac注册功能?

1 个答案:

答案 0 :(得分:3)

自定义Autofac模块确实是您需要执行更复杂注册(如命名或截获的注册等)的首选方式。我们在Orchard核心中使用了很多。

Orchard中的Autofac模块可以成为OrchardFeatureOrchardSuppressDependency属性的主题,这使得它在需要自定义时非常强大且易于使用。