c# - Ninject 按参数名称绑定(bind)

标签 c# asp.net-mvc ninject

我使用 ASP .NET MVC 和 Ninject。我需要参数名称的条件绑定(bind)。我该怎么做?

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"));

最佳答案

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

关于c# - Ninject 按参数名称绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441340/

相关文章:

NInject:Get<T>()时如何传递参数?

c# - 具有依赖注入(inject)的 WinForms MVC

c# - SpeechSynthesizer.SelectVoice() 失败并显示 "No matching voice is installed or the voice was disabled"

c# - 如何在 .NET 中将处理器关联设置为线程或任务?

c# - 为面试/测试做准备的关于 C++/STL/C#/J2SE 的最佳和最短书籍

asp.net-mvc - 知道您在哪个页面上的自定义 ActionLink 助手

javascript - 返回正确的 json

C# helpProvider SetHelpString 不支持unicode

c# - 从 C# MVC 模型设置 AngularJS $provide.constant 值的最佳方法是什么?

asp.net - ASP.NET session 状态/NInject/OnePerRequest 行为的问题