按参数名称绑定Ninject

Yar*_*icx 4 c# asp.net-mvc ninject

我使用ASP .NET MVC和Ninject.我需要参数名称的条件绑定.我怎样才能做到这一点?

private readonly ITemplateProvider _msgTemplate;
private readonly ITemplateProvider _mailTemplate;

public OrderLineManager(ITemplateProvider msgTemplate,ITemplateProvider mailTemplate)
{
    _msgTemplate = msgTemplate;
    _mailTemplate = mailTemplate;
}

//ninject kernel , 
//i need for msgTample MessageTemplateProvider
//i need for mailTemplate MailTemplateProvider
_kernel.Bind<ITemplateProvider>()
    .To<MessageTemplateProvider>()
    .When(request => request.Target.Member.Name.Equals("msgTemplate"));

_kernel.Bind<ITemplateProvider>()
    .To<MailTemplateProvider>()
    .When(request => request.Target.Member.Name.Equals("mailTemplate"));
Run Code Online (Sandbox Code Playgroud)

Yar*_*icx 6

_kernel.Bind<ITemplateProvider>().To<MessageTemplateProvider>().When(a => a.Target.Name == "msgTemplate");
_kernel.Bind<ITemplateProvider>().To<MailTemplateProvider>().When(a => a.Target.Name == "mailTemplate");
Run Code Online (Sandbox Code Playgroud)