Search code examples
configurationautofacaop

The autofac configuration file enables interceptors


Code section You can use EnableInterfaceInterceptors() when using assembly injection. How do I enable interceptors when I register with a configuration file.

    var config = new ConfigurationBuilder().AddXmlFile("AutoFac.config").Build();
    var module = new ConfigurationModule(config);
    var builder = new ContainerBuilder();
    builder.RegisterModule(module);
    var container = builder.Build();

configuration files

<autofac defaultAssembly="Test.Multilingual.IService">
  <components name="0">
    <type>Test.Multilingual.Service.TestMessage, Test.Multilingual.Service</type>
    <services name="0" type="Test.Multilingual.IService.ITestMessage" />
    <injectProperties>true</injectProperties>
    <instanceScope>perlifetimescope</instanceScope>
  </components>
  <components name="1">
    <type>Test.Multilingual.LanguageChoiceForm, Test.Multilingual</type>
    <injectProperties>true</injectProperties>
  </components>
  <components name="2">
    <type>Test.Multilingual.MainForm, Test.Multilingual</type>
    <injectProperties>true</injectProperties>
  </components>
  <components name="3">
    <type>Test.Multilingual.BaseForm, Test.Multilingual</type>
    <injectProperties>true</injectProperties>
  </components>
  <components name="4">
    <type>Test.Multilingual.PopForm, Test.Multilingual</type>
    <injectProperties>true</injectProperties>
  </components>
  <components name="5">
    <type>Test.Multilingual.Core.MultilingualInterceptor, Test.Multilingual.Core</type>
    <injectProperties>true</injectProperties>
  </components>
</autofac>

How do I enable interceptors?????


Solution

  • Autofac configuration does not support interceptors.

    As noted in the documentation:

    Before diving too deeply into JSON/XML configuration, be sure to read Modules - this explains how to handle more complex scenarios than the basic JSON/XML component registration will allow. Configuration in JSON/XML is not a feature-for-feature replacement for programmatic configuration, so complex scenarios may require a combination of JSON/XML and modules.