Quando si tenta di impostare un parametro utilizzando la configurazione XML ottengo il seguente errore:Nessuno dei costruttori trovato con 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'
None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'LM.AM.Core.Services.EmailService' can be invoked with the available services and parameters: Cannot resolve parameter 'System.String testSmtp' of constructor 'Void .ctor(System.String)'.
Qui ci sono i file in questione:
web.config
<configSections>
<section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" />
</configSections>
<autofac>
<components>
<component type="LM.AM.Core.Services.EmailService , LM.AM.Core" service="LM.AM.Core.Infrastructure.Services.IEmailService , LM.AM.Core.Infrastructure">
<parameters>
<parameter name="testSmtp" value="abc" />
</parameters>
</component>
</components>
</autofac>
Service Class
public class EmailService : IEmailService
{
public string _testSmtp;
public EmailService (string testSmtp)
{
_testSmtp = testSmtp;
}
}
Registrazione
builder.RegisterType<EmailService>().As<IEmailService>().SingleInstance();
Global.asax
var builder = new ContainerBuilder();
builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
builder.RegisterModule<Core.ModuleInstaller>();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
AutofacContainer.Container = builder.Build();
var emailSvc = AutofacContainer.Container.Resolve<IEmailService>();
Ho controllato il contenitore è a conoscenza del parametro xml e ho seguito il wiki più vicino come posso, ma per qualche motivo il parametro non si sta risolvendo sull'unico costruttore e sto ricevendo l'er sopra ror.
Questo dovrebbe essere abbastanza semplice per iniziare. Qualcuno può fornire qualche suggerimento su cosa posso provare a fare funzionare questo ?
Ohh Dio hai salutato la mia vita! – Cleiton