gpt4 book ai didi

c# - 如何将 Ninject 命名绑定(bind)与 DependencyResolver 和 PropertyInjection 一起使用

转载 作者:太空狗 更新时间:2023-10-29 20:53:24 25 4
gpt4 key购买 nike

我意识到构造函数注入(inject)是首选,但我很好奇在使用另一种形式的注入(inject)时如何使用 Ninject 的上下文“命名绑定(bind)”。

具体来说,在使用 DependencyResolver 或属性注入(inject)时,我该怎么做。

public MyService([Named("Alpha")] IRepository repository)
{
this.repository = repository;
}

最佳答案

您可以创建命名绑定(bind)以在 Alpha 上工作:

Bind<IRepository>().To<AlphaRepository>().Named("Alpha");

然后你可以指定其他的,比如:

Bind<IRepository>().To<AnotherRepository>().Named("Beta");

当使用示例构造函数时,您将获得 AlphaRepository。

为了将名称与属性一起使用,就像为参数所做的那样,给属性一个名称属性:

[Inject, Named("Alpha")]
public IRepository Foo {get; set;}

关于c# - 如何将 Ninject 命名绑定(bind)与 DependencyResolver 和 PropertyInjection 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6133431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com