Note that there are some explanatory texts on larger screens.

plurals
  1. POAutofac inject specific implemenation into home controller
    primarykey
    data
    text
    <p>This is first time I am using autofac &amp; mvc 4. I have installed AutoFac using Nuget package. My nuget package installed:</p> <pre><code>&lt;package id="Autofac" version="3.1.5" targetFramework="net45" /&gt; &lt;package id="Autofac.Mvc4" version="3.1.0" targetFramework="net45" /&gt; </code></pre> <p>I have three implementations of my logger:</p> <pre><code> builder.RegisterType&lt;DbLogger&gt;().As&lt;ILogger&gt;(); builder.RegisterType&lt;TextLogger&gt;().As&lt;ILogger&gt;(); builder.RegisterType&lt;MemoryLogger&gt;().As&lt;ILogger&gt;(); </code></pre> <p>My home controller is registered using following code:</p> <pre><code>// in case we want to exclude this in external dll builder.RegisterControllers(Assembly.GetCallingAssembly()); </code></pre> <p>My Home controller constructor for All three implementations is easy:</p> <pre><code>private ILogger[] loggers; public HomeController(ILogger[] loggers) { this.loggers = loggers; } </code></pre> <p><strong>How do I register specific "MemoryLogger" into my MemoryController?</strong></p> <pre><code> private ILogger _memoryLogger; public MemoryController(ILogger logger) { this._memoryLogger = logger; } </code></pre> <p>I know that I can re-register controller with specific implementation.</p> <p>same as for Ninject</p> <p><a href="https://stackoverflow.com/questions/8585325/inject-different-classes-that-implement-the-same-interface-using-ninject">Inject different classes that implement the same interface using Ninject</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload