Ich habe Klasse:Autofac Registertyp mit Konstruktor
public class FunctionExtender : IFunctionsExtender
{
private static IOptions<Settings> _settings;
private static ILogger<FunctionExtender> _logger;
public FunctionExtender(IOptions<Settings> settings, ILogger<FunctionExtender> logger)
{
_settings = settings;
_logger = logger;
}
}
wo IOptions
ist ein Microsoft.Extensions.Options
Art und ILogger
ist ein Microsoft.Extensions.Logging
Typ. Wie kann ich diesen Typ im Autofac Container mit seinen Parametern registrieren? Ich habe versucht, so etwas wie die:
var container = new ContainerBuilder();
container.Populate(services);
container.RegisterType<FunctionExtender>()
.WithParameter(new TypedParameter(typeof(IOptions<Settings>), ???));
aber ich weiß nicht, was als zweites Argument übergeben.
Sie aus der Vermietung Ihrer Anwendungskomponenten auf 'ioptions hängen ganz verzichtet werden soll' wie [hier] erklärt (https://simpleinjector.readthedocs.io/en/latest/aspnetintegration.html#working-with-ioption- t). –
Steven
Verhindern Sie auch, dass 'ILogger' injiziert wird und bevorzugen Sie, den viel einfacheren 'ILogger' in Ihre Komponenten zu injizieren. Sie können dies mit einem Autofac.Modul verbinden, wie es [hier] (https://github.com/nblumhardt/autofac-serilog-integration/blob/dev/src/AutofacSerilogIntegration/ContextualLoggingModule.cs) für Serilog gezeigt wird. –
Steven