微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用带有DependencyResolver和PropertyInjection的Ninject命名绑定

如何解决如何使用带有DependencyResolver和PropertyInjection的Ninject命名绑定

|| 我意识到构造函数注入是首选,但我很好奇在使用另一种注入形式时如何使用Ninject的上下文“命名绑定”。 具体来说,在使用DependencyResolver或属性注入时如何执行以下操作。
public MyService([Named(\"Alpha\")] IRepository repository)
{
    this.repository = repository;
}
    

解决方法

您可以创建一个命名绑定以在Alpha上工作:
Bind<IRepository>().To<AlphaRepository>().Named(\"Alpha\");
然后您可以指定其他名称,例如:
Bind<IRepository>().To<AnotherRepository>().Named(\"Beta\");
使用示例构造函数时,您将获得AlphaRepository。 为了将名称与属性一起使用,请像对参数所做的操作一样,为属性赋予name属性:
[Inject,Named(\"Alpha\")]
public IRepository Foo {get; set;}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。