Ninject WithConstructorArgument для реализации простого инжектора - PullRequest
0 голосов
/ 03 мая 2018

Что такое прямая реализация от Ninject WithConstructorArgument до реализации Simple Injector?

 var emailTemplates = new EmailTemplates
 {
      MasterPageTemplate = MVC.Email.Views._Layout
 };

 container.Register<IEmailService, EmailService>()
     .WithConstructorArgument("templates", emailTemplates);

Класс

public EmailTemplatesService(
            EmailTemplates templates,
            IEventEmailTemplatesRepository eventEmailTemplatesRepository)

1 Ответ

0 голосов
/ 03 мая 2018

В Simple Injector, вы можете сделать это:

container.Register<IEmailService>(() => new EmailService(
    emailTemplates,
    container.GetInstance<IEventEmailTemplatesRepository>()));

Или вы можете сделать это:

// Wrap the string value into a DTO and inject that
public EmailService(
    EmailServiceSettings settings, IEventEmailTemplatesRepository r) { ... }

container.RegisterInstance(new EmailServiceSettings(emailTemplates));
container.Register<IEmailService, EmailService>();

Или вы можете переопределить поведение ввода параметров, как объяснено здесь .

...