简体   繁体   English

Ninject WithConstructorArgument到简单的注入器实现

[英]Ninject WithConstructorArgument to Simple Injector Implementation

What is the direct implementation from Ninject's WithConstructorArgument to a Simple Injector implementation? 从Ninject的WithConstructorArgument到Simple Injector的直接实现是什么?

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

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

Class

public EmailTemplatesService(
            EmailTemplates templates,
            IEventEmailTemplatesRepository eventEmailTemplatesRepository)

In Simple Injector, you can do this: 在Simple Injector中,您可以执行以下操作:

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

Or you can do this: 或者您可以这样做:

// 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>();

Or you can override the parameter injection behavior, as explained here . 或者你也可以覆盖参数注入行为,如解释在这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM